
    M/Ph                         d dl Z d dlZd dlmZmZmZ d dlmZ d dl	m
Z
mZmZ d dlmZ d dlmZmZmZ  G d d          Zd Zd Zd	 Zd
 Z G d d          Z G d d          ZdZd Zd Zd Zd ZdS )    N)assert_equalassert_raisesassert_allclose)gamma	factorial
factorial2)_faa_di_bruno_partitionscumulant_from_momentsExpandedNormalc                       e Zd Zd Zd ZdS )TestFaaDiBrunoc                 r    t          t          t          d           t          t          t          d           d S )Nr   )r   
ValueErrorr	   selfs    n/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/distributions/tests/test_edgeworth.pytest_neg_argzTestFaaDiBruno.test_neg_arg   s.    j":B???j":A>>>>>    c                     t          dd          D ]=}t          |          D ]+}t          d |D                       }t          ||           ,>d S )N      c              3   &   K   | ]\  }}||z  V  d S )N ).0mks      r   	<genexpr>z1TestFaaDiBruno.test_small_vals.<locals>.<genexpr>   s*      11FQ!a%111111r   )ranger	   sumr   )r   nkslhss       r   test_small_valszTestFaaDiBruno.test_small_vals   sn    q! 	% 	%A.q11 % %11b11111S!$$$$%	% 	%r   N)__name__
__module____qualname__r   r$   r   r   r   r   r      s2        ? ? ?% % % % %r   r   c                 8    d| dz  z
  t          | dz
            z  S )Nr      )r   r!   s    r   _norm_momentr+      s!    AIAE****r   c                 <    	 ddd|          S # t           $ r Y dS w xY w)Nr   r   )r   r)   )KeyErrorr*   s    r   _norm_cumulantr.      s9    ||A   qqs   
 
c                 ^    d| z  t          | |dz  z             z  t          |dz            z  S )Nr)          @)r   r!   dfs     r   _chi2_momentr3   %   s0    qDE!be)$$$uRU||33r   c                 N    | dk    sJ d| dz
  z  t          | dz
            z  |z  S )Nr   r)   r   )r   r1   s     r   _chi2_cumulantr5   )   s3    q5555qs8iA&&&++r   c                        e Zd Zd Zd Zd ZdS )TestCumulantsc                 ~    t          t          t          g dd           t          t          t          g dd           d S )N)r   r)      r      )r   r   r
   r   s    r   test_badvalueszTestCumulants.test_badvalues/   s:    j"7AFFFj"7AFFFFFr   c                     d}d t          |          D             }t          d|dz             D ]1}t          ||          }t          |t          |          d           2d S )Nr:   c                 2    g | ]}t          |d z             S r   )r+   )r   js     r   
<listcomp>z+TestCumulants.test_norm.<locals>.<listcomp>5   s$    444aQqS!!444r   r   g-q=)atol)r   r
   r   r.   )r   Nmomtr!   kappas        r   	test_normzTestCumulants.test_norm3   s    44588444q!A# 	  	 A)$22EE>!#4#4         	  	 r   c                     d}dfdt          |          D             }t          d|dz             D ]0}t          ||          }t          |t          |                     1d S )Nr:      c                 6    g | ]}t          |d z             S r>   r3   )r   r?   r2   s     r   r@   z+TestCumulants.test_chi2.<locals>.<listcomp>>   s'    888!QqS"%%888r   r   )r   r
   r   r5   )r   rB   rC   r!   rD   r2   s        @r   	test_chi2zTestCumulants.test_chi2;   s}    8888uQxx888q!A# 	: 	:A)$22EE>!R#8#89999	: 	:r   N)r%   r&   r'   r;   rE   rJ   r   r   r   r7   r7   .   sD        G G G     : : : : :r   r7   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestExpandedNormalc                 >    t          t          t          dg           d S )Nr   )r   r   r   r   s    r   test_too_few_cumulantsz)TestExpandedNormal.test_too_few_cumulantsE   s    j.1#66666r   c                    t          j                    5  t          j        dt                     t	          g d          }t          |j        g d           t	          g d          }t          |j        g d           t	          g d          }t          |j        g d           t	          g d          }t          |j        g d	           d d d            d S # 1 swxY w Y   d S )
Nignore)              ?rR   )rR   rQ   rQ   UUUUUU?)rQ   rR   rR   rR   )rR   rQ   rQ   rS   UUUUUU?rQ   qq?)rQ   rR   rR   rR   rR   )
rR   rQ   rQ   rS   rT   g?rU   gqq|?rQ   gHI?)rQ   rR   rR   rQ   )rR   rQ   rQ   rS   rQ   rQ   rU   )warningscatch_warningssimplefilterRuntimeWarningr   r   _coef)r   ne3ne4ne5ne33s        r   test_coefficientsz$TestExpandedNormal.test_coefficientsH   s_   $&& 	K 	K!(N;;; ..CCI'9'9'9::: !!1!1!122CCI'K'K'KLLL !!5!5!566CCI (0 (0 (0 1 1 1 ""2"2"233DDJ(I(I(IJJJ#	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   B;CC #C c                     t          ddg          }t          j        ddd          }t          |                    |          t
          j                            |dd                     d S )Nr9   r:   g       r0   d   r)   )locscale)r   nplinspacer   pdfstatsnorm)r   ne2xs      r   test_normalzTestExpandedNormal.test_normal\   sZ    aV$$KR%%

EJNN1!1N$E$EFFFFFr   c                 v   d\  }fdt          |          D             }t          j                    5  t          j        dt                     t          |d          d d d            n# 1 swxY w Y   t          fdt          |          D             fdt          |          D                        t          dd	
           t          dd	
           t          dd	
           t          j                            d                               d          }t          dd|           d S )N)      c                 6    g | ]}t          |d z             S r>   )r5   r   r!   r2   s     r   r@   z8TestExpandedNormal.test_chi2_moments.<locals>.<listcomp>e   s'    9991~ac2&&999r   rP   	edgw_chi2)namec                 0    g | ]}t          |          S r   rI   rp   s     r   r@   z8TestExpandedNormal.test_chi2_moments.<locals>.<listcomp>k   s#    ???a,,???r   c                 :    g | ]}                     |          S r   )moment)r   r!   nes     r   r@   z8TestExpandedNormal.test_chi2_moments.<locals>.<listcomp>l   s#    888!1888r   r    )argmsgi i  )sizeg{Gz?)argsalpharvs)r   rV   rW   rX   rY   r   r   	check_pdfcheck_cdf_ppfcheck_cdf_sfrd   randomseedr}   check_distribution_rvs)r   rB   cumr}   r2   rv   s       @@r   test_chi2_momentsz$TestExpandedNormal.test_chi2_momentsb   s   29999a999$&& 	7 	7!(N;;;+666B	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7
 	????eAhh???8888uQxx888	: 	: 	: 	"""%%%% 	bbb)))) 	RRR(((( 		vff#fr$C@@@@@@s   ,A..A25A2c                     t          j                    5  t          j        dt                     t	          ddg          }t	          g d          }d d d            d S # 1 swxY w Y   d S )Nerrorr   r   )r   r   皙?r   )rV   rW   rX   rY   r   )r   rv   s     r   test_pdf_no_rootsz$TestExpandedNormal.test_pdf_no_roots   s    $&& 	2 	2!'>:::A''B 0 0 011B	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   =AA"%A"c                     t          j                    5  t          j        dt                     t	          t          t
          g d           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   e   )rV   rW   rX   rY   r   r   r   s    r   test_pdf_has_rootsz%TestExpandedNormal.test_pdf_has_roots   s    $&& 	G 	G!'>:::..+++FFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   8AA AN)	r%   r&   r'   rN   r_   rk   r   r   r   r   r   r   rL   rL   D   s}        7 7 7K K K(G G G A  A  AD2 2 2G G G G Gr   rL   rG   c                     | j         dg|R  }d} | j        |g|R  }|dk     s|dk    r|dz   } | j        |g|R  } | j        ||z   g|R   | j        ||z
  g|R  z
  |z  dz  }t          j        ||t
          |dz              d S )	N      ?gư>g-C6?g     @r   r0   z - cdf-pdf relationshipdecimalerr_msg)ppfrf   cdfnptassert_almost_equalDECIMAL)distfnrx   ry   medianepspdfvcdfdiffs          r   r~   r~      s    VZ"c"""F
C6:f#s###Dt #vz&'3'''vz&3,----vz&3,----./23367G D'/H)HJ J J J J Jr   c                 ~    g d}t          j         | j         | j        |g|R  g|R  |t          |dz              d S )NgMbP?r   g+?z - cdf-ppf roundtripr   )r   r   r   r   r   r   rx   ry   valuess       r   r   r      sn       FJFJzvz&'?3'?'?'?F#FFFGS3I-IK K K K K Kr   c                     g d}t          j         | j        |g|R  d | j        |g|R  z
  t          |dz              d S )Nr   rR   z - sf+cdf == 1r   )r   r   r   sfr   r   s       r   r   r      sn       FJFJv44446(C((((S*:%:< < < < < <r   c                 d   t          j        || j        |d          \  }}||k     rt          j        | j        | j        |d          \  }}t	          j        ||k    dt          |          z   dz   t          |          z   dz   t          |          z   dz   t          |          z              d S d S )Ni  )r{   rB   zD = z	; pval = z
; alpha = z
args = )rg   kstestr   r}   r   assert_str)r   r{   r|   r}   Dpvals         r   r   r      s     \#vz===FAdufj&*44HHH$D5L&3q66/K"?#d))"K#!%jj#)+6#79<T#C 	D 	D 	D 	D 	D 	r   )rV   numpyrd   numpy.testingr   r   r   testingr   scipy.specialr   r   r   scipy.statsrg   #statsmodels.distributions.edgeworthr	   r
   r   r   r+   r.   r3   r5   r7   rL   r   r~   r   r   r   r   r   r   <module>r      s       , , , , , , , , , ,       6 6 6 6 6 6 6 6 6 6      / / / / / / / / / /	% 	% 	% 	% 	% 	% 	% 	%+ + +  4 4 4, , ,
: : : : : : : :,IG IG IG IG IG IG IG IGZ J J J$K K K< < <D D D D Dr   