
p7]c           @` sD  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m	 Z	 m
 Z
 d  d l j Z d  d l m Z m Z d  d l m Z d  d l j Z d  d l m Z m Z m Z d e f d     YZ d	   Z d
   Z d   Z d   Z d e f d     YZ d e f d     YZ d Z  d   Z! d   Z" d   Z# d   Z$ d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_equalt   assert_raisest   assert_allclose(   t	   factorialt
   factorial2(   t   gamma(   t   _faa_di_bruno_partitionst   cumulant_from_momentst   ExpandedNormalt   TestFaaDiBrunoc           B` s   e  Z d    Z d   Z RS(   c         C` s$   t  t t d  t  t t d  d  S(   Nii    (   R   t
   ValueErrorR	   (   t   self(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_neg_arg   s    c         C` sX   xQ t  d d  D]@ } x7 t |  D]) } t d   | D  } t | |  q# Wq Wd  S(   Ni   i   c         s` s   |  ] \ } } | | Vq d  S(   N(    (   t   .0t   mt   k(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pys	   <genexpr>   s    (   t   rangeR	   t   sumR   (   R   t   nt   kst   lhs(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_small_vals   s    (   t   __name__t
   __module__R   R   (    (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyR      s   	c         C` s   d |  d t  |  d  S(   Ni   i   (   R   (   R   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   _norm_moment   s    c         C` s3   y i d d 6d d 6|  SWn t  k
 r. d SXd  S(   Ni    i   i   (   t   KeyError(   R   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   _norm_cumulant!   s    c         C` s(   d |  t  |  | d  t  | d  S(   Ni   g       @(   R   (   R   t   df(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   _chi2_moment(   s    c         C` s0   |  d k s t   d |  d t |  d  | S(   Ni    i   i   (   t   AssertionErrorR   (   R   R   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   _chi2_cumulant,   s    t   TestCumulantsc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s<   t  t t d d d g d  t  t t d d d g d  d  S(   Ni   i   i   i    i   (   R   R   R
   (   R   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_badvalues2   s    c         C` sy   d } g  t  |  D] } t | d  ^ q } xC t  d | d  D]. } t | |  } t | t |  d d qC Wd  S(   Ni   i   t   atolg-q=(   R   R   R
   R   R   (   R   t   Nt   jt   momtR   t   kappa(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt	   test_norm6   s    )c         C` s   d } d } g  t  |  D] } t | d |  ^ q } x@ t  d | d  D]+ } t | |  } t | t | |   qL Wd  S(   Ni   i   i   (   R   R   R
   R   R!   (   R   R%   R   R&   R'   R   R(   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt	   test_chi2>   s    ,(   R   R   R#   R)   R*   (    (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyR"   1   s   		t   TestExpandedNormalc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  t t d g  d  S(   Ni   (   R   R   R   (   R   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_too_few_cumulantsH   s    c         C` s  t  j   	t  j d t  t d d d g  } t | j d d d d
 g  t d d d d g  } t | j d d d d d d d g  t d d d d d g  } t | j d d d d d d d d d d g
  t d d d d g  } t | j d d d d d d d g  Wd  QXd  S(   Nt   ignoreg        g      ?i   i   iH   ix   i   i  gUUUUUU?gUUUUUU?gUUUUUU?gqq?gUUUUUU?gUUUUUU?g?gqq?gqq|?gHI?gUUUUUU?gqq?(   t   warningst   catch_warningst   simplefiltert   RuntimeWarningR   R   t   _coef(   R   t   ne3t   ne4t   ne5t   ne33(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_coefficientsK   s    %c         C` sY   t  d d g  } t j d d d  } t | j |  t j j | d d d d  d  S(	   Ni   i   g       g       @id   t   loct   scalei   (   R   t   npt   linspaceR   t   pdft   statst   norm(   R   t   ne2t   x(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_normal_   s    c      	   C` sB  d \ } } g  t  |  D] } t | d |  ^ q } t j   ' t j d t  t | d d } Wd  QXt g  t  |  D] } t | |  ^ q} g  t  |  D] } | j	 |  ^ q  t
 | d d d d	 t | d d d d	 t | d d d d	 t j j d
  | j d d  } t | d d d d d | d  S(   Ni   i   i   R-   t   namet	   edgw_chi2t   argt   msgt    i t   sizei  t   argst   alphag{Gz?t   rvs(   i   i   (    (    (    (    (   R   R!   R.   R/   R0   R1   R   R   R   t   momentt	   check_pdft   check_cdf_ppft   check_cdf_sfR:   t   randomt   seedRJ   t   check_distribution_rvs(   R   R%   R   R   t   cumt   neRJ   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_chi2_momentse   s    ,()c      	   C` sQ   t  j   ? t  j d t  t d d g  } t d d d d g  } Wd  QXd  S(   Nt   errori    i   g?(   R.   R/   R0   R1   R   (   R   RS   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_pdf_no_roots   s    c      
   C` s@   t  j   . t  j d t  t t t d d d g  Wd  QXd  S(   NRU   i    i   ie   (   R.   R/   R0   R1   R   R   (   R   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   test_pdf_has_roots   s    (   R   R   R,   R7   RA   RT   RV   RW   (    (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyR+   G   s   				"	i   c         C` s   |  j  d |  } d } |  j | |  } | d k  sB | d k ra | d } |  j | |  } n  |  j | | |  |  j | | |  | d } t j | | d t d | d	 d  S(
   Ng      ?gư>g-C6?g     @g?g       @t   decimalt   err_msgs    - cdf-pdf relationship(   t   ppfR<   t   cdft   nptt   assert_almost_equalt   DECIMAL(   t   distfnRD   RE   t   mediant   epst   pdfvt   cdfdiff(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyRL      s    
2c         C` sK   d d d g } t  j |  j |  j | |  |  | d t d | d d  S(   NgMbP?g      ?g+?RX   RY   s    - cdf-ppf roundtrip(   R\   R]   R[   RZ   R^   (   R_   RD   RE   t   values(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyRM      s    !c         C` sO   d d d g } t  j |  j | |  d |  j | |  d t d | d d  S(   NgMbP?g      ?g+?g      ?RX   RY   s    - sf+cdf == 1(   R\   R]   R[   t   sfR^   (   R_   RD   RE   Rd   (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyRN      s    c         C` s   t  j | |  j d | d d \ } } | | k  r t  j |  j |  j d | d d \ } } t j | | k d t |  d t |  d t |  d t |   n  d  S(   NRH   R%   i  s   D = s	   ; pval = s
   ; alpha = s   
args = (   R=   t   kstestR[   RJ   R\   t   assert_t   str(   R_   RH   RI   RJ   t   Dt   pval(    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyRQ      s
    '*(%   t
   __future__R    R   R   R.   t   numpyR:   t   numpy.testingR   R   R   t   testingR\   t   statsmodels.compat.scipyR   R   t   scipy.specialR   t   scipy.statsR=   t#   statsmodels.distributions.edgeworthR	   R
   R   t   objectR   R   R   R   R!   R"   R+   R^   RL   RM   RN   RQ   (    (    (    sM   lib/python2.7/site-packages/statsmodels/distributions/tests/test_edgeworth.pyt   <module>   s(   				M			