
    "g                         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y)    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y)TestFaaDiBrunoc                 X    t        t        t        d       t        t        t        d       y )Nr   )r   
ValueErrorr	   selfs    k/var/www/dash_apps/app1/venv/lib/python3.12/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 ]0  }t        |      D ]   }t        d |D              }t        ||       " 2 y )N      c              3   ,   K   | ]  \  }}||z    y w)N ).0mks      r   	<genexpr>z1TestFaaDiBruno.test_small_vals.<locals>.<genexpr>   s     1FQ!a%1s   )ranger	   sumr   )r   nkslhss       r   test_small_valszTestFaaDiBruno.test_small_vals   sE    q! 	%A.q1 %1b11S!$%	%r   N)__name__
__module____qualname__r   r$   r   r   r   r   r      s    ?%r   r   c                 0    d| dz  z
  t        | dz
        z  S )Nr      )r   r!   s    r   _norm_momentr+      s    AIAE***r   c                 2    	 ddd|    S # t         $ r Y yw xY w)Nr   r   )r   r)   )KeyErrorr*   s    r   _norm_cumulantr.      s'    |A s   
 	c                 N    d| z  t        | |dz  z         z  t        |dz        z  S )Nr)          @)r   r!   dfs     r   _chi2_momentr3   %   s+    qDE!be)$$uRU|33r   c                 D    | dkD  sJ d| dz
  z  t        | dz
        z  |z  S )Nr   r)   r   )r   r1   s     r   _chi2_cumulantr5   )   s.    q5L5qs8iA&&++r   c                       e Zd Zd Zd Zd Zy)TestCumulantsc                 d    t        t        t        g dd       t        t        t        g dd       y )N)r   r)      r      )r   r   r
   r   s    r   test_badvalueszTestCumulants.test_badvalues/   s     j"7AFj"7AFr   c                     d}t        |      D cg c]  }t        |dz          }}t        d|dz         D ]%  }t        ||      }t        |t	        |      d       ' y c c}w )Nr:   r   g-q=)atol)r   r+   r
   r   r.   )r   Njmomtr!   kappas         r   	test_normzTestCumulants.test_norm3   se    +084aQqS!44q!A# 	 A)$2EE>!#4 	  5s   Ac                     d}d}t        |      D cg c]  }t        |dz   |       }}t        d|dz         D ]$  }t        ||      }t        |t	        ||             & y c c}w )Nr:      r   )r   r3   r
   r   r5   )r   r>   r2   r?   r@   r!   rA   s          r   	test_chi2zTestCumulants.test_chi2;   si    /4Qx8!QqS"%88q!A# 	:A)$2EE>!R#89	: 9s   A!N)r%   r&   r'   r;   rB   rE   r   r   r   r7   r7   .   s    G :r   r7   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestExpandedNormalc                 0    t        t        t        dg       y )Nr   )r   r   r   r   s    r   test_too_few_cumulantsz)TestExpandedNormal.test_too_few_cumulantsE   s    j.1#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        y # 1 sw Y   y xY w)
Nignore)              ?rM   )rM   rL   rL   UUUUUU?)rL   rM   rM   rM   )rM   rL   rL   rN   UUUUUU?rL   qq?)rL   rM   rM   rM   rM   )
rM   rL   rL   rN   rO   g?rP   gqq|?rL   gHI?)rL   rM   rM   rL   )rM   rL   rL   rN   rL   rL   rP   )warningscatch_warningssimplefilterRuntimeWarningr   r   _coef)r   ne3ne4ne5ne33s        r   test_coefficientsz$TestExpandedNormal.test_coefficientsH   s    $$& 	K!!(N; .CCII'9: !!12CCII'KL !!56CCII (0 1 ""23DDJJ(IJ#	K 	K 	Ks   B/CCc                     t        ddg      }t        j                  ddd      }t        |j	                  |      t
        j                  j	                  |dd             y )Nr9   r:   g       r0   d   r)   )locscale)r   nplinspacer   pdfstatsnorm)r   ne2xs      r   test_normalzTestExpandedNormal.test_normal\   sG    aV$KKR%
EJJNN1!1N$EFr   c           	         d\  }}t        |      D cg c]  }t        |dz   |       }}t        j                         5  t        j                  dt
               t        |d      }d d d        t        t        |      D cg c]  }t        ||       c}t        |      D cg c]  }j                  |       c}       t        dd       t        |dd       t        |dd       t        j                  j                  d	       |j!                  d
      }t#        |dd|       y c c}w # 1 sw Y   xY wc c}w c c}w )N)      r   rK   	edgw_chi2)namer    )argmsgi i  )sizeg{Gz?)argsalpharvs)r   r5   rQ   rR   rS   rT   r   r   r3   moment	check_pdfcheck_cdf_ppfcheck_cdf_sfr_   randomseedrr   check_distribution_rvs)r   r>   r2   r!   cumnerr   s          r   test_chi2_momentsz$TestExpandedNormal.test_chi2_momentsb   s   205a91~ac2&99$$& 	7!!(N;+6B	7
 	eAh?a,?/4Qx8!18	: 	"""% 	bbb) 	RRR( 			vff#fr$C@; :	7 	7
 @8s   D-(D2D>#E
2D;c                     t        j                         5  t        j                  dt               t	        ddg      }t	        g d      }d d d        y # 1 sw Y   y xY w)Nerrorr   r   )r   r   皙?r   )rQ   rR   rS   rT   r   )r   r{   s     r   test_pdf_no_rootsz$TestExpandedNormal.test_pdf_no_roots   sL    $$& 	2!!'>:A'B 01B	2 	2 	2s   5AAc                     t        j                         5  t        j                  dt               t	        t        t
        g d       d d d        y # 1 sw Y   y xY w)Nr~   )r   r   e   )rQ   rR   rS   rT   r   r   r   s    r   test_pdf_has_rootsz%TestExpandedNormal.test_pdf_has_roots   sC    $$& 	G!!'>:..+F	G 	G 	Gs   2AAN)	r%   r&   r'   rI   rZ   rf   r|   r   r   r   r   r   rG   rG   D   s%    7K(G AD2Gr   rG   rD   c                 >    | j                   dg| }d} | j                  |g| }|dk  s|dkD  r|dz   } | j                  |g| } | j                  ||z   g|  | j                  ||z
  g| z
  |z  dz  }t        j                  ||t
        |dz          y )	N      ?gư>g-C6?g     @r   r0   z - cdf-pdf relationshipdecimalerr_msg)ppfra   cdfnptassert_almost_equalDECIMAL)distfnrm   rn   medianepspdfvcdfdiffs          r   rt   rt      s    VZZ"c"F
C6::f#s#Dt #vzz&'3'vzz&3,--vzz&3,--./23367G D'/H)HJr   c                     g d}t        j                   | j                   | j                  |g| g| |t        |dz          y )NgMbP?r   g+?z - cdf-ppf roundtripr   )r   r   r   r   r   r   rm   rn   valuess       r   ru   ru      sE     FJFJJzvzz&'?3'?F#FGS3I-IKr   c                     g d}t        j                   | j                  |g| d | j                  |g| z
  t        |dz          y )Nr   rM   z - sf+cdf == 1r   )r   r   r   sfr   r   s       r   rv   rv      sJ     FJFJJv446(C((S*:%:<r   c                 `   t        j                  || j                  |d      \  }}||k  rt        j                  | j                  | j                  |d      \  }}t	        j
                  ||kD  dt        |      z   dz   t        |      z   dz   t        |      z   dz   t        |      z          y y )Ni  )rp   r>   zD = z	; pval = z
; alpha = z
args = )rb   kstestr   rr   r   assert_str)r   rp   rq   rr   Dpvals         r   ry   ry      s     \\#vzz=FAdufjj&**44H$D5L&3q6/K"?#d)"K#!%j#)+6#79<T#C 	D 	r   )rQ   numpyr_   numpy.testingr   r   r   testingr   scipy.specialr   r   r   scipy.statsrb   #statsmodels.distributions.edgeworthr	   r
   r   r   r+   r.   r3   r5   r7   rG   r   rt   ru   rv   ry   r   r   r   <module>r      s     , ,  6 6 / /	% 	%+4,
: :,IG IGZ J$K<Dr   