
&]\c        #   @` sr  d  d l  m Z m Z m Z d  d l Z d  d l j Z d  d l	 Z	 d  d l	 m
 Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d d	 l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% d  d
 l& m' Z' d Z( d db g d dc g d dd g d de g d df g d dg g g Z) d d d d d d d  d! d d" d# d d$ d% d& g Z* e+ d' d d( d) d* d+ d, d- d. d d/ d0 d1 d2 d3 d d& d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA d  d! dB g"  Z, e j- d dC dC dD dD dD dE dE dE dE d d d d d dF dF dF dF dG dG dG dH dH dI g dJ dH Z. e j/ e.  Z0 dK   Z1 e	 j2 j3 dL e1    dM    Z4 dN   Z5 dO   Z6 e	 j2 j7 e	 j2 j3 dP e6    dQ     Z8 e	 j2 j3 dR e'  dS    Z9 dT   Z: dU   Z; dV   Z< dW   Z= dX   Z> dY   Z? dZ   Z@ d[   ZA d\   ZB d]   ZC d^   ZD d_   ZE d`   ZF da   ZG d S(h   i    (   t   divisiont   print_functiont   absolute_importN(   t   raises(   t   suppress_warnings(   t   IntegrationWarning(   t   stats(   t   betainci   (   t   check_normalizationt   check_momentt   check_mean_expectt   check_var_expectt   check_skew_expectt   check_kurt_expectt   check_entropyt   check_private_entropyt   check_entropy_vect_scalet   check_edge_supportt   check_named_argst   check_random_state_propertyt   check_meth_dtypet   check_ppf_dtypet   check_cmplx_derivt   check_picklingt   check_rvs_broadcast(   t   distconti   t	   betaprimeid   iV   t   fatiguelifet   mielkegcou@g~W;?t
   invweibullgF6c?t   burrgRGY?gft2@t
   genextremegy7
@t   kappa4t   rdistt
   gausshypert   recipinvgausst   ksonet   genexpont   vonmisest   vonmises_linet   semicirculart   cosinet   powerlognormt	   johnsonsut	   kstwobignt   betat   chit   chi2t   dgammat   dweibullt   erlangt   ft   gammat   gengammat   gennormt	   genparetot   halfgennormt   invgammat   levy_lt   loggammat   logistict   maxwellt   nakagamit   ncft   nctt   ncx2t   norminvgausst   pearson3t   ricet   tt   skewnormt   tukeylambdat   rv_histogram_instancei   i   i   i   i   i   i	   t   binsc          c` su   xn t  t t   f g D]U \ }  } |  d k r6 q q |  t k rb t j |  | d t j j Vq |  | f Vq Wd  S(   Nt   levy_stablet   marks(   R   t   histogram_test_instancet   tuplet   distslowt   pytestt   paramt   markt   slow(   t   distnamet   arg(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt   cases_test_cont_basicK   s    $ s   distname,argc         C` s  |  d k r t  j d |   n  y t t |   } Wn t k
 rQ |  } d }  n Xt j j d  d } t   } | j	 d t
 d d  | j d	 | |  } | j   } | j   } | j |   \ } }	 t | | | |	 | | | |  d
  t | | |   t | | |   t | | |   t | | |   t | | |   t | | |   d }
 |  d k rzt | j | |
 |  n t |  | |
 |  d  } | j | j | j | j | j g } i d d 6d d 6d d 6d d 6d d 6d d 6} | j |  d  } |  d k rd! } n |  d k r#d" } n  t | | | | |  t | |  t | |  |  d# k rrt | | |   n  | j  d k rt! | |  n  | j" j# t j$ j# k r|  d k rt% | | t j$  n  t   D } | j	 t& d  | j	 t& d  | j	 t' d  t( | |  Wd  QXt) | |  t* | | |  t+ | |  |  t, k r`t- | |  n  |  d k rt. | | |   n  Wd  QXd  S($   Nt	   truncnormt   reasonRH   i i  t   categoryt   messages
   .*frechet_t   sizes   sample mean testg{Gz?i    i   g      t	   frechet_lt   weibull_maxR:   g      ?t   paretog333333?RG   g      @g      ?R   R$   i   R,   R&   s    The occurrence of roundoff errors   Extremely bad integrands   invalid value(   i    i   (   i   (   i   (   R$   R,   (/   RO   t   xfailt   getattrR   t	   TypeErrort   npt   randomt   seedR   t   filtert   DeprecationWarningt   rvst   meant   vart   check_sample_meanvar_t   check_cdf_ppft   check_sf_isft	   check_pdft   check_pdf_logpdft   check_cdf_logcdft   check_sf_logsft   check_distribution_rvst   cdft   pdft   logpdft   logcdft   logsft   getR   R   R   R   t   numargst   check_vecentropyt	   __class__t   _entropyt   rv_continuousR   R   t   RuntimeWarningR   R   R   R   t   fails_cmplxR   t   check_ppf_private(   RS   RT   t   distfnt   snt   supRf   t   smt   svt   mt   vt   alphat   locscale_defaultst   methst   spec_xt   x(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt   test_cont_basicU   sv    
#
		c           C` s   t  t j d  d  S(   Ng      ?g?(   g      ?g?(   R   R   RJ   (    (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt&   test_levy_stable_random_state_property   s    c       	   c` s   t  d d g  }  t  d d d g  } x t t t   f g D] \ } } | d k r] q? n  | |  k } | | k } | | | | t f V| s | r? t j | | t t t d t j j	 Vq? q? Wd  S(   NR&   R$   R?   RJ   RK   (
   t   setR   RL   RM   t   FalseRO   RP   t   TrueRQ   R^   (   t   fail_normalizationt   fail_higherRS   RT   t   cond1t   cond2(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt   cases_test_moments   s    $s3   distname,arg,normalization_ok,higher_ok,is_xfailingc         C` sO  y t  t |   } Wn t k
 r2 |  } d }  n Xt   } | j t d  | j d t d d  | r{ | j t  n  | j d d |  \ } } }	 }
 | r t | | |   n  | rt | | | |   t	 | | | | |	 |   t
 | | | | |   t | | | | |
 |   n  t | | | | |   t | | | | |   Wd  QXd  S(   NRH   s9   The integral is probably divergent, or slowly convergent.RX   RY   s
   .*frechet_t   momentst   mvsk(   R_   R   R`   R   Rd   R   Re   R   R
   R   R   R   t   check_loc_scaleR	   (   RS   RT   t   normalization_okt	   higher_okt   is_xfailingR   R   R   R   t   st   k(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt   test_moments   s*    
	!s   dist,shape_argsc      
   C` s  |  d k r t  j d  n  |  d k } t t |   } t j d  } t j d  } | j } g  } d d g } x_ t |  D]Q }	 |	 d f d |	 d }
 | j	 | |	 t j |
   | j
 d |	 d  q} W| j | | g  t | |  | | | d  d  S(   NR"   R%   s   too slowR   R0   t	   exponnormRB   R@   R1   RD   RJ   RF   i   i   i   i   i    t   d(   R"   R%   (	   R   R0   R   RB   R@   R1   RD   RJ   RF   (   i   i   (   i   (   RO   t   skipR_   R   Ra   t   zerost   onesRw   t   ranget   appendt   insertt   extendR   (   t   distt
   shape_argst
   shape_onlyt   distfunct   loct   scalet   nargst   allargst   bshapeR   t   shp(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt   test_rvs_broadcast   s     		c          C` s.  t  j j d  t j j d t  j d  d d  }  t  j |   } t j	 t  j
 | d k  d  t j j d d d t  j d   }  t  j |   } t j	 t  j
 | d k  d  t j j d t  j d  d t  j d   }  t  j |   } t j	 t  j
 | d k  d  t j j d t  j d g d g g  d t  j d   }  t  j |  j    } t j	 t  j
 | d k  d  t t t j j d d g d d g g d d g d d g g d  t t t j j d d	 d
 d g d d d  t t t j j d d d d g d d d d g d g d g g d  d  S(   Ni{   R   i   R   i   i    s0   All the values are equal, but they shouldn't be!i   i   i   (   i   i   (   i   (   Ra   Rb   Rc   R   t   normRf   R   t   difft   nptt   assert_t   allR   t   arrayt   ravelt   assert_raisest
   ValueErrorR4   (   t   valsR   (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt   test_rvs_gh2069_regression  s$    $$-9$+-c         C` sK   t  j |  r% t | | | |  n  t  j |  rG t | | |  n  d  S(   N(   Ra   t   isfinitet   check_sample_meant   check_sample_var(   R   RT   R   R   R   R   R   t   msg(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRi   "  s    c         C` s   | d } | d | t  |  } |  | t j | d |  } t d | d | | | |  } t j | d k d | | | |  f  d  S(   Ni   g      ?g      ?g{Gz?s'   mean fail, t,prob = %f, %f, m, sm=%f,%f(   t   floatRa   t   sqrtR   R   R   (   R   R   t   nt   popmeant   dft   svarRE   t   prob(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyR   *  s    
"c         C` sh   | d } | d | t  |  } t j j j | |  d } t j | d k d | | | |  f  d  S(   Ni   i   g{Gz?s(   var fail, t, pval = %f, %f, v, sv=%f, %f(   R   R   t   distributionsR/   t   sfR   R   (   R   R   t   popvarR   R/   t   pval(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyR   :  s
    
c         C` sK   d d d g } t  j |  j |  j | |  |  | d t d | d d  S(   NgMbP?g      ?g+?t   decimalt   err_msgs    - cdf-ppf roundtrip(   R   t   assert_almost_equalRq   t   ppft   DECIMAL(   R   RT   R   t   values(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRj   D  s    !c         C` s   t  j |  j |  j d d d g |  |  d d d g d t d | d t  j |  j d d g |  d |  j d d g |  d t d | d d  S(	   Ng?g      ?g?R   R   s    - sf-isf roundtripg      ?s    - cdf-sf relationship(   R   R   R   t   isfR   Rq   (   R   RT   R   (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRk   K  s    *	c         C` s   |  j  d |  } d } |  j | |  } | d k  sB | d k ra | d } |  j | |  } n  |  j | | |  |  j | | |  | d } | d 7} t j | | d t d	 | d  S(
   Ng      ?gư>g-C6?g     @g?g       @s    - cdf-pdf relationshipR   R   (   R   Rr   Rq   R   R   R   (   R   RT   R   t   mediant   epst   pdfvt   cdfdiff(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRl   U  s    
2
c         C` s   t  j d d d d d d d g  } |  j | |  } |  j | |  } |  j | |  } | | d k } | t  j |  } | d	 7} t j t  j |  | d
 d d | d  S(   Ng?g333333?g?g      ?g333333?gffffff?g?i    s    - logpdf-log(pdf) relationshipR   i   R   (	   Ra   R   R   Rr   Rs   R   R   R   t   log(   R   t   argsR   t   pointsR   Rr   Rs   (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRm   g  s    $
c         C` s   t  j d d d d d d d g  } |  j | |  } |  j | |  } |  j | |  } | | d k } | t  j |  } | d	 7} t j t  j |  | d
 d d | d  S(   Ng?g333333?g?g      ?g333333?gffffff?g?i    s    - logsf-log(sf) relationshipR   i   R   (	   Ra   R   R   R   Ru   R   R   R   R   (   R   R   R   R   R   R   Ru   (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRo   s  s    $
c         C` s   t  j d d d d d d d g  } |  j | |  } |  j | |  } |  j | |  } | | d k } | t  j |  } | d	 7} t j t  j |  | d
 d d | d  S(   Ng?g333333?g?g      ?g333333?gffffff?g?i    s    - logcdf-log(cdf) relationshipR   i   R   (	   Ra   R   R   Rq   Rt   R   R   R   R   (   R   R   R   R   R   Rq   Rt   (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRn     s    $
c         C` s   t  j | |  d | d d \ } } | | k  r t  j |  d d | d d \ } } t j | | k d t |  d t |  d t |  d t |   n  d  S(	   NR   t   Ni  t    s   D = s	   ; pval = s
   ; alpha = s   
args = (   R   t   kstestR   R   t   str(   R   R   R   Rf   t   DR   (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRp     s
    $$c         C` s&   t  j |  j |   |  j |    d  S(   N(   R   t   assert_equalt
   vecentropyRz   (   R   R   (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyRx     s    c   	      C` sa   d \ } } |  j  d | d | |  \ } } t j | | | |  t j | | | |  d  S(   Ng      $@R   R   (   g      $@g      $@(   R   R   t   assert_allclose(	   R   RT   R   R   R   R   R   t   mtt   vt(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyR     s    !c         C` sO   |  j  t j d d d g  |  } t j t j t j |   | d  d  S(   Ng?g      ?g?s   ppf private is nan(   t   _ppfRa   R   R   R   t   anyt   isnan(   R   RT   R   t   ppfs(    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyR~     s    $(   id   iV   (   i   (   gcou@g~W;?(   gF6c?(   gRGY?gft2@(   gy7
@(H   t
   __future__R    R   R   t   numpyRa   t   numpy.testingt   testingR   RO   R   R   t   scipy._lib._numpy_compatR   t   scipy.integrateR   t   scipyR   t   scipy.specialR   t   common_testsR   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   scipy.stats._distr_paramsR   R   t   distcont_extraRN   R   R}   t	   histogramt   _ht   rv_histogramRL   RU   RQ   t   parametrizeR   R   R   RR   R   R   R   Ri   R   R   Rj   Rk   Rl   Rm   Ro   Rn   Rp   Rx   R   R~   (    (    (    sF   lib/python2.7/site-packages/scipy/stats/tests/test_continuous_basic.pyt   <module>   sj   p							6*	
!R			$				
		
					
		