ó
î&]\c           @` sT  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l j Z	 d  d l m
 Z
 m Z d  d l m Z d  d l m Z d  d l j j Z d  d l m Z d  d l m Z e d „ Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_allcloset   assert_equal(   t   suppress_warnings(   t   raises(   t   getargspec_no_self(   t   statsc         C` sd   x] t  | ƒ D]O \ } } | r? t j |  | t |  | ƒ ƒ q t j |  | t |  | ƒ ƒ q Wd  S(   N(   t	   enumeratet   ma_nptR   t   getattrt   npt(   t   rest
   attributest   mat   it   attr(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_named_results   s     c         C` s²   |  j  d | Œ } t j | d ƒ | d k r= d \ } } n d \ } } |  j d „  d | ƒ} t j | d d | d	 | d
 | d t ƒ|  j |  j | Œ } t j | d ƒ d  S(   Ni    g      ð?t   ncfgñhãˆµøä>gH¯¼šò×z>c         S` s   d S(   Ni   (    (   t   x(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   <lambda>$   s    t   argst   atolt   rtolt   err_msgt   verbose(   gñhãˆµøä>i    (   gH¯¼šò×z>gH¯¼šò×z>(   t   momentR   R   t   expectt   Truet   cdft   b(   t   distfnR   t   distnamet   norm_momentR   R   t   normalization_expectt   normalization_cdf(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_normalization   s    c         C` sâ   |  j  d | Œ } |  j  d | Œ } t j | ƒ sV t j | | d d d | d ƒn' t j t j | ƒ | d t | ƒ ƒ t j | ƒ s· t j | | | | d d d | d ƒn' t j t j | ƒ | d	 t | ƒ ƒ d  S(
   Ni   i   t   decimali
   R   s    - 1st moments    - 1st moment -infinite, m1=%ss    - 2ndt moments    - 2nd moment -infinite, m2=%s(   R   t   npt   isinfR   t   assert_almost_equalt   assert_t   str(   R    t   argt   mt   vt   msgt   m1t   m2(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_moment,   s     c         C` sK   t  j | ƒ rG |  j d „  | ƒ } t j | | d d d | d ƒn  d  S(   Nc         S` s   |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyR   @   s    R&   i   R   s    - 1st moment (expect)(   R'   t   isfiniteR   R   R)   (   R    R,   R-   R/   R0   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_mean_expect>   s    c         C` sS   t  j | ƒ rO |  j d „  | ƒ } t j | | | | d d d | d ƒn  d  S(   Nc         S` s   |  |  S(   N(    (   R   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyR   G   s    R&   i   R   s    - 2st moment (expect)(   R'   R3   R   R   R)   (   R    R,   R-   R.   R/   R1   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_var_expectE   s     c         ` sw   t  j | ƒ r] |  j ‡  f d †  | ƒ } t j | | t  j | d ƒ d d d | d ƒn t j t  j | ƒ ƒ d  S(   Nc         ` s   t  j |  ˆ  d ƒ S(   Ni   (   R'   t   power(   R   (   R-   (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyR   N   s    g      ø?R&   i   R   s    - skew(   R'   R3   R   R   R)   R6   R*   t   isnan(   R    R,   R-   R.   t   sR/   t   m3e(    (   R-   s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_skew_expectL   s
    c      
   ` s“   t  j | ƒ rg |  j ‡  f d †  | ƒ } t j | | d t  j | d ƒ d d d d d | d ƒn( t  j | ƒ s t j t  j | ƒ ƒ n  d  S(	   Nc         ` s   t  j |  ˆ  d ƒ S(   Ni   (   R'   R6   (   R   (   R-   (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyR   W   s    g      @i   R   gñhãˆµøä>R   R   s    - kurtosis(	   R'   R3   R   R   R   R6   t   isposinfR*   R7   (   R    R,   R-   R.   t   kR/   t   m4e(    (   R-   s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_kurt_expectU   s    /c         C` s1   |  j  | Œ  } t j t j | ƒ | d ƒ d  S(   Ns   test Entropy is nan(   t   entropyR   R*   R'   R7   (   R    R,   R/   t   ent(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_entropy^   s    c         C` s)   t  j |  j | Œ  | j |  | Œ ƒ d  S(   N(   R   R   t   _entropy(   R    R   t
   superclass(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_private_entropyc   s    c         C` s  t  j d d g d d g g ƒ } |  j d | | Œ } g  | j ƒ  D] } |  j d | | Œ ^ qC } t  j | ƒ j | j ƒ } t | | d d ƒd d d g } |  j d | | Œ } g  | D] } |  j d | | Œ ^ q½ } t  j | ƒ j | j ƒ } t | | d d ƒd  S(	   Ni   i   i   i   t   scaleR   g›+¡†›„=iýÿÿÿ(   R'   t   asarrayR?   t   ravelt   reshapet   shapeR   (   R    R,   t   sct   v_entR8   t   s_ent(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_entropy_vect_scalei   s    !.(c         C` s  |  j  |  j g } t |  t j ƒ r= |  j  d |  j g } n  t j |  j | | Œ d d g ƒ t j |  j | | Œ d d g ƒ |  j	 d k rß t j |  j
 | | Œ t j d g ƒ t j |  j | | Œ d t j g ƒ n  t j |  j d d g | Œ | ƒ t j |  j d d g | Œ | d  d  d … ƒ t j t j |  j d d g | Œ ƒ j ƒ  ƒ t j t j |  j d d g | Œ ƒ j ƒ  ƒ d  S(	   Ni   g        g      ð?t   skellamt   dlaplaceiÿÿÿÿi   (   RN   RO   (   t   aR   t
   isinstanceR   t   rv_discreteR   R   R   t   sft   namet   logcdfR'   t   inft   logsft   ppft   isfR*   R7   t   all(   R    R   R   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_edge_supporty   s    ""&)"/.c         C` s  t  |  j ƒ } t j | j d  k ƒ t j | j d  k ƒ t j t | j ƒ t | ƒ k ƒ | j	 t
 | ƒ  } |  j r˜ |  j j d d ƒ j ƒ  } n d } t j t
 | ƒ |  j k ƒ t j t
 | ƒ t
 | ƒ k ƒ t | ƒ } g  | D] } | | | Œ ^ qì }	 t j t j t j |	 ƒ ƒ ƒ | | i  }
 } } xŸ |
 rÝ| j i | j ƒ  |
 j ƒ  6ƒ g  | D] } | | | | Ž ^ ql} t j |	 | ƒ d | j ƒ  k r?t j |  j d | | Ž |  j d | Œ ƒ q?q?W| j i d d 6ƒ t t |  j | |  d  S(   Nt   ,t    t    t   ni   i*   t   kaboom(   t   _getargspect   _parse_argsR   R*   t   varargst   Nonet   keywordst   listt   defaultsR   t   lent   shapest   replacet   splitt   numargsR'   RZ   R3   t   updatet   popt   assert_array_equalt   keysR   R   t   assert_raisest	   TypeErrorR   (   R    R   t
   shape_argsRg   t   methst	   signaturet   shape_argnamest   shapes_t   metht   valst   namesRP   R<   R.   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_named_args   s.    "	"	 %c         C` s  |  j  } t j j d ƒ d  |  _  |  j d d | Œ } d |  _  |  j d d | Œ } t j | | ƒ t j j d ƒ |  _  |  j d d | Œ } t j | | ƒ d |  _  |  j  j	 ƒ  } |  j d d d t j j d ƒ | Œ } t j | | ƒ t j |  j  j	 ƒ  | ƒ | |  _  d  S(   NiÒ  t   sizei   i   t   random_state(
   R}   R'   t   randomt   seedRd   t   rvsR   R   t   RandomStatet	   get_state(   R    R   t   rndmt   r0t   r1t   r2t
   orig_statet   r3(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_random_state_propertyµ   s     				'c   
      C` sÖ   d d d g } |  j  | | Œ } g  t j t j t j t j f D] } | j | ƒ ^ q@ } xt | D]l } |  j | Œ  | |  j | k  | |  j	 k  @} x6 | D]. } | | | Œ }	 t
 j |	 j t j k ƒ qœ Wqb Wd  S(   Ng      Ð?g      à?g      è?(   RX   R'   t   int_t   float16t   float32t   float64t   astypet	   _argcheckRP   R   R   R*   t   dtypet   float_(
   R    R,   Rt   t   q0t   x0t   tpt   x_castR   Rx   t   val(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_meth_dtypeØ   s    7 c         C` s¦   t  j d d d g ƒ } g  t  j t  j t  j f D] } | j | ƒ ^ q1 } xS | D]K } xB |  j |  j g D]. } | | | Œ } t j	 | j
 t  j k ƒ ql WqS Wd  S(   Ng      Ð?g      à?g      è?(   R'   RF   R‹   RŒ   R   RŽ   RX   RY   R   R*   R   R‘   (   R    R,   R’   R”   t   q_castt   qRx   R–   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_ppf_dtypeç   s    4c   
      C` s«  d „  } |  j  d d d g | Œ } g  t j t j t j t j f D] } | j | ƒ ^ qC } xF| D]>} |  j | Œ  | |  j | k  | |  j	 k  @} |  j
 | | Œ |  j | | Œ |  j | | Œ } } }	 t | |  j | | Œ | d d ƒt | |  j | | Œ | | d d ƒt | |  j | | Œ | d d ƒt | |  j | | Œ | |	 d d ƒt | |  j | | Œ | |  j
 | | Œ |  j
 | | Œ d d ƒqe Wd  S(   Nc         W` s1   t  j | ƒ } d } |  | | d | Œ | j S(   Ng»½×Ùß|Û=y              ð?(   R'   RF   t   imag(   t   fR   R,   t   h(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   derivò   s    g      Ð?gR¸…ëQà?g      è?R   gñhãˆµøä>(   RX   R'   RŠ   R‹   RŒ   R   RŽ   R   RP   R   t   pdfR   RS   R   RU   RW   t   logpdf(
   R    R,   Rž   R“   R”   R•   R   RŸ   R   RS   (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_cmplx_derivð   s    	7 8"&#'%c         C` sö   |  j  } d |  _  |  j d d | Œ t j |  ƒ } |  j d d | Œ } t j | ƒ } | j d d | Œ } t j | | ƒ |  j d | Œ | j d | Œ g } t j | d | d ƒ t j |  j | d | Œ | j | d | Œ ƒ | |  _  d  S(   NiÒ  R|   i   g      à?i    i   (	   R}   R€   t   picklet   dumpst   loadsR   R   RX   R   (   R    R   Rƒ   R8   R„   t	   unpickledR…   t   medians(    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_pickling  s    		$c   
   	   ` s¸   t  j j d ƒ t ƒ  ™ } | j d t d d ƒ ˆ  j | Œ  } t | j | d | ƒ | s® t  j	 ‡  f d †  d | ƒ} t  j j d ƒ | | Œ  }	 t
 | |	 d d	 ƒn  Wd  QXd  S(
   Ni{   t   categoryt   messages
   .*frechet_s   %s: rvs failed to broadcastc          ` s   ˆ  j  |  Œ  S(   N(   R€   (   t   allargs(   t   distfunc(    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyR   /  s    t   otypesR   gVçž¯Ò<(   R'   R~   R   R   t   filtert   DeprecationWarningR€   R   RI   t	   vectorizeR   (
   R«   R!   Rª   RI   t
   shape_onlyt   otypet   supt   sampleR€   t   expected(    (   R«   s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   check_rvs_broadcast&  s    (-   t
   __future__R    R   R   R¢   t   numpyR'   t   numpy.testingt   testingR   R   R   t   scipy._lib._numpy_compatR   t   pytestR   Rq   t   numpy.ma.testutilsR   t	   testutilsR
   t   scipy._lib._utilR   Ra   t   scipyR   t   FalseR   R%   R2   R4   R5   R:   R>   RA   RD   RM   R[   R{   R‰   R—   Rš   R¡   R§   Rµ   (    (    (    s=   lib/python2.7/site-packages/scipy/stats/tests/common_tests.pyt   <module>   s6   													&	#					