
&]\c           @` s  d  Z  d d l m Z m Z m Z d d l Z d d l m Z m Z m	 Z	 m
 Z
 m Z m Z d d l Z d d l m Z d d l m Z d d l Z 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 d d l m Z m Z d d l m Z d d l m  Z  d d l m! Z! m" Z" d d l m# Z# m$ Z$ m% Z% m& Z& m' Z' d d l m( Z( m) Z) d d l m* Z* m+ Z+ d d l m, Z, d d l- m. Z. d d l/ m0 Z0 d d l1 m2 Z2 d e3 f d     YZ4 d e3 f d     YZ5 d e3 f d     YZ6 d   Z7 d e3 f d     YZ8 d e3 f d      YZ9 d! e3 f d"     YZ: d# e3 f d$     YZ; d% e3 f d&     YZ< d' e3 f d(     YZ= d) e3 f d*     YZ> d+   Z? d,   Z@ d S(-   s8   
Test functions for multivariate normal distributions.

i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_allcloset   assert_almost_equalt   assert_array_almost_equalt   assert_equalt   assert_array_lesst   assert_(   t   raisesi   (   t   check_distribution_rvs(   t   _PSDt   _lnBt   _cho_inv_batch(   t   multivariate_normal(   t   matrix_normal(   t   special_ortho_groupt   ortho_group(   t   random_correlation(   t   unitary_group(   t	   dirichlett   beta(   t   wishartt   multinomialt
   invwishartt   chi2t   invgamma(   t   normt   uniform(   t   ks_2sampt   kstest(   t   binom(   t   romb(   t   multigammaln(   t   check_random_state_propertyt   TestMultivariateNormalc           B` s   e  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   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j d  } t  j d  } t t t j d | |  t t t j d | |  t t t j d | |  t t t j d | |  d  S(	   Ni   i   i    i   (   i    i   (   i    i   i   (   i    i   (   i    i   i   (   t   npt   aranget   identityt   assert_raisest
   ValueErrorR   t   pdft   cdf(   t   selft   mut   cov(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_input_shape(   s    c         C` sD  t  j j d  d \ } } } t j | | |  } t | j d  t  j j d  } t  j j d  } t  j t  j j d   } t j | | |  } t | j d  d \ } } } t j	 | | |  } t | j d  t  j j d  } t  j j d  } t  j t  j j d   } t j	 | | |  } t | j d  d  S(	   Ni  g      ?g333333?g      @i    i   (   g      ?g333333?g      @(   g      ?g333333?g      @(
   R$   t   randomt   seedR   R)   R   t   ndimt   randnt   absR*   (   R+   t   xt   meanR-   R)   R*   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_scalar_values0   s"    c         C` s   t  j j d  t  j j d  } t  j j d  } t  j t  j j d   } t j | | |  } t j | | |  } t | t  j	 |   d  S(   Ni  i   (
   R$   R/   R0   R2   R3   R   t   logpdfR)   R   t   log(   R+   R4   R5   R-   t   d1t   d2(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_logpdfK   s    c         C` s   t  j j d  t  j j d  } t j |  } t j |  } t j | d  d  } t j | d  d  } t | t  j	 |   t | t  j	 |   d  S(   Ni  i   i   (
   R$   R/   R0   R2   R   R7   R)   t   NoneR   R8   (   R+   R4   R9   R:   t   d3t   d4(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_logpdf_default_valuesU   s    c         C` s   t  j j d  t  j j d  } t  j j d  } t  j t  j j d   } t j | | |  } t j | | |  } t | t  j	 |   d  S(   Ni  i   (
   R$   R/   R0   R2   R3   R   t   logcdfR*   R   R8   (   R+   R4   R5   R-   R9   R:   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_logcdfb   s    c         C` s   t  j j d  t  j j d  } t j |  } t j |  } t j | d  d  } t j | d  d  } t | t  j	 |   t | t  j	 |   d  S(   Ni  i   i   (
   R$   R/   R0   R2   R   R@   R*   R<   R   R8   (   R+   R4   R9   R:   R=   R>   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_logcdf_default_valuesl   s    c         C` s   t  j j d  d } t  j j |  } xm t d | d  D]X } t  j j | |  } t  j | | j  } t | | d t } t	 | j
 j |  q< Wd  S(   Ni  i   i   t   allow_singular(   R$   R/   R0   R2   t   ranget   dott   TR   t   TrueR   t   cov_infot   rank(   R+   t   nR5   t   expected_rankt   sR-   t   distn(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt	   test_ranky   s    c         C` s  d   } x
t  d d  D]} t j j |  } xt  d | d  D]} t j j | |  } t j | | j  } t j | | f  } | | d  |  d  |  f <| |  } t j | t j | | j   }	 t j | |  }
 t t j |  | d t } t t j |  | d t } t t j |  |	 d t } t	 | j
 j |  t	 | j
 j |  t	 | j
 j |  | j | |   } | j |  } | j |
  } t | |  t | |  | j | |   } | j |  } | j |
  } t | |  t | |  qE Wq Wd  S(   Nc         S` s4   t  j j |  |   } t j j |  \ } } } | S(   N(   R$   R/   R2   t   scipyt   linalgt   svd(   RJ   t   Mt   uRL   t   v(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   _sample_orthonormal_matrix   s    i   i   RC   (   RD   R$   R/   R2   RE   RF   t   zerosR   RG   R   RH   RI   R)   R   R7   (   R+   RU   RJ   R4   t   kRL   t   cov_kkt   cov_nnRS   t   cov_rrt   yt   distn_kkt   distn_nnt   distn_rrt   pdf_kkt   pdf_nnt   pdf_rrt	   logpdf_kkt	   logpdf_nnt	   logpdf_rr(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_degenerate_distributions   s<    	!			c         C` s  d } d } d } t  j | |  } | | } t  j | | f d t } t  j | |  d | | d   | d   f <t t j j |  d  t t j j | d  |  d  |  f  t  j	  t
 t  j j | d  |  d  |  f  d | f  t |  } t
 | j |  d  S(   Ng     @@id   i   t   dtypei    i   (   R$   t   expRV   t   floatt   fill_diagonalR   RO   RP   t   dett   infR   t   slogdetR   t   log_pdet(   R+   t   large_total_logt   npost   nzerot   large_entryRJ   R-   t   psd(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_large_pseudo_determinant   s    
2(c         C` s8  t  j j d  d } t  j j | |  } t  j | | j  } t  j j |  } t  j j d d |  } t j | | |  } t j | | |  } x t	 d  D] } x t	 d  D]x }	 t j | | |	 f | |  }
 t
 |
 | | |	 f  t j | | |	 f | |  }
 t
 |
 | | |	 f d d q Wq Wd  S(   Ni  i   i   i   t   rtolgMbP?(   R$   R/   R0   R2   RE   RF   R   R)   R*   RD   R   (   R+   RJ   t   dataR-   R5   t   Xt   desired_pdft   desired_cdft   it   jt   actual(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_broadcasting   s    c         C` s   t  j d d d  } d \ } } | d } t j | | |  } t j | | |  } t | |  t j | | |  } t j | | |  } t | |  d  S(   Ni    i   i
   g333333?g?g      ?(   g333333?g?(   R$   t   linspaceR   R)   R   R   R*   (   R+   R4   R5   R-   t   scaleR9   R:   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_normal_1D   s    
c         C` s  t  j d d g  } t  j d d g d d g g  } d } d	 | d } t  j d
 d	 |  } t  j | |  \ } } t  j | | d f  } | | d  d   d  d   d
 f <| | d  d   d  d   d f <t j | | |  }	 t |	 | d d
 }
 t |	 | d d } t j | d | d
 d | d d } t j | d | d d | d d } t	 |
 | d d d d t	 | | d d d d d  S(   Ng      @g      @g      ?g?g333333?i   i   i   i   i    t   axist   locR~   Rt   g{Gz?t   atoli   i  (   i    i    (   i   i   (
   R$   t   arrayR}   t   meshgridt   emptyR   R)   R    R   R   (   R+   R5   R-   RJ   t   deltaRT   t   xvt   yvt   posR)   t   margin_xt   margin_yt   gauss_xt   gauss_y(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_marginalization   s     !''c         C` s   t  j j d  t  j j d  } t  j j d  } t  j t  j j d   } t | |  } t | j |  t j | | |   t | j |  t j | | |   t | j	 |  t j	 | | |   t | j
 |  t j
 | | |   d  S(   Ni  i   (   R$   R/   R0   R2   R3   R   R   R)   R7   R*   R@   (   R+   R4   R5   R-   t   norm_frozen(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_frozen  s    %%c   	      C` s  t  j j d  d } t  j j | |  } t  j | | j  } t j j |  \ } } d t  j	 |  } d | d <d | d <t  j | t  j t  j
 |  | j   } d } t | d	 | } t | j d	 | } t | j t  j t  j | d     t | j | j  d  S(
   Ni  i   g      ?g      ?i    gHz>igh㈵>t   cond(   R$   R/   R0   R2   RE   RF   RO   RP   t   eight   onest   diagR   t   pinvR   Rm   t   sumR8   (	   R+   RJ   R4   R-   RL   RS   R   Rr   t   psd_pinv(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_pseudodet_pinv  s    

*&c         C` s2   d d d g d d d g g } t  t t |  d  S(   Ni   i   i   i   i   i   (   R'   R(   R   (   R+   R-   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_exception_nonsquare_cov/  s    c         C` sZ   d d g d t  j g g } t t t |  d d g d t  j g g } t t t |  d  S(   Ni   i    (   R$   t   nanR'   R(   R   Rk   (   R+   t   cov_nant   cov_inf(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_exception_nonfinite_cov3  s    c         C` s,   d d g d d g g } t  t t |  d  S(   Ni   i    i(   R'   R(   R   (   R+   R-   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_exception_non_psd_cov9  s    c         C` s   t  j j d  t  j j d  } t  j j d  } t  j d  } t  j j } t | t | |  t | t j	 | | |  t | t j
 | | |  t | t j | | |  t | t j | | |  d  S(   Ni  i   (   i   i   (   R$   R/   R0   R2   R   RP   t   LinAlgErrorR'   R   R)   R7   R*   R@   (   R+   R4   R5   R-   t   e(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_exception_singular_cov=  s    c         C` s  t  j d d d d d g  } t  j d d d  } d	 | d } | t  j |  } t  j | | | g  j } t  j d
 d	 d g d  } t  j d
 d d g d d d g d d d	 g g d  } t j | | |  } t | | d d t  j d d d d d g  }	 t j | | |  }
 t |
 |	 d d t  j d d d d d g  } t  j | | g  j } t  j d
 d	 g d  } t  j d
 d g d d g g d  } t j | | |  } t | | d d d  S(   Ng0Q-?gox'V?g[S, t?gDB?gc_.?i    i   i   i   i   t   dg      ?R   g|=gwk:E]?g̙Z?g0?gL8?gAG*?gh㈵>gIى?gG?gƏ)?gėh?gEE?(	   R$   R   R}   t   cosRF   R   R)   R   R*   (   R+   t   r_pdfR4   R[   t   zt   rR5   R-   R)   t   r_cdfR*   t   r_cdf2t   r2t   mean2t   cov2t   cdf2(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_R_valuesI  s*    6$c         C` sV   t  j d  } t  j d  } t | | d t } | j   } t | d d g  d  S(   Ni   RC   i    (   i   i   (   R$   RV   R   RG   t   rvsR   (   R+   R5   t
   covariancet   modelt   sample(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt,   test_multivariate_normal_rvs_zero_covariance  s
    c         C` s   d } d } t  j d t j |  d d d |  } t | j | | f  t  j d d  d t j d d g d d g g  d |  } t | j | d f  t  d d	 d d  } | j |  } t | j | f  d  S(
   Ni,  i   R5   R-   i   t   sizei   g?i    (   R   R   R$   RV   R   t   shapeR<   R   (   R+   t   NR   R   RS   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_rvs_shape  s    '!	c         C` s   t  j j d  d } t  j j |  } t  j j | |  } t  j | | j  } d } t j | | |  } t t	 j
 | j  | d d t | j d  | d d d  S(   Ni  i   i  Rt   g?i    (   R$   R/   R0   R2   RE   RF   R   R   R   t   numpyR-   R5   (   R+   RJ   R5   RR   R-   R   R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_large_sample  s    c         C` s   t  j j d  d } t  j j |  } t  j j | |  } t  j | | j  } t | |  } t | j   t j | |   t  j	 j
 |  d } d | t  j d t  j  d t  j t  j |   } t | | j    d  S(   Ni  i   i    i   i   g      ?(   R$   R/   R0   R2   RE   RF   R   R   t   entropyRP   t   eigR8   t   piR   (   R+   RJ   R5   RR   R-   t   rvt   eigst   desired(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_entropy  s    8c         C` s>   t  j d d d g  } d } t t  j t |   |  d  S(   Ni   g      ?(   R$   R   R   Rg   R   (   R+   t   alphaR   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_lnB  s    (   t   __name__t
   __module__R.   R6   R;   R?   RA   RB   RN   Re   Rs   R|   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR#   '   s0   			
		
			,											@				t   TestMatrixNormalc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` so  d } d } d t  j | | f  } d t  j |  d t  j | | f  } d t  j |  d t  j | | f  } t t t t  j d   t t t | t  j d  |  t t t | | t  j d   t t t | | |  t t t | | |  t t t | j | |  t  j j	 } t | t | | t  j | | f   t | t | t  j | | f  |  d  S(	   Ni   i   g333333?g      ?gffffff?i   i
   (   i   i   i   (
   R$   R   R&   R'   R(   R   RV   RF   RP   R   (   R+   t   num_rowst   num_colsRR   t   Ut   VR   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_bad_input  s    **%c         C` s  d } d } d t  j | | f  } d t  j |  d t  j | | f  } d t  j |  d t  j | | f  } t  j | | f  } t  j | d f  } t  j d | f  } t  j |  }	 t  j |  }
 t  j d  } t t j d | d | d	 |  j | | f  t t j d |  j | | f  t t j d |  j | d f  t t j d	 |  j d | f  t t j d | d	 |  j | | f  t t j d | d |  j | | f  t t j d | d	 |  j | | f  t t d |  j |	  t t d |  j	 |
  t t d |  j
 |  t t d |  j	 |  t t d	 |  j
 |  t t d	 |  j |  t t d | d |  j	 |
  t t d | d	 |  j |	  t t d | d	 |  j
 |  d  S(
   Ni   i   g333333?g      ?gffffff?i   R5   t   rowcovt   colcov(   R$   R   R&   RV   R   R   R   R   R   R   R5   (   R+   R   R   RR   R   R   t   Zt   Zrt   Zct   Irt   Ict   I1(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_default_inputs  sD    **!c   
      C` s  d } d } d t  j | | f  } d t  j |  } d } d t  j |  } d } t  j |  } t  j |  }	 t t d | d | d |  j d |  t t d | d | d |  j d |	  t t d | d | d |  j d |  t t d | d | d |  j d |	  d  S(	   Ni   i   g333333?g?g?R5   R   R   (   R$   R   R&   R   R   R   R   (
   R+   R   R   RR   t   Uvt   Ust   Vvt   VsR   R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_covariance_expansion  s"    c         C` s  xt  d d  D]w} xnt  d d  D]]} d t j | | f  } d t j |  d t j | | f  } d t j |  d t j | | f  } t d | d | d |  } | j d	 d
  } t j d | d | d | d	 d
  } t | |  | j d	 d
  }	 | j |	  }
 t j |	 d | d | d | } t |
 |  | j |	  } t j |	 d | d | d | } t | |  q& Wq Wd  S(   Ni   i   g333333?g      ?gffffff?R5   R   R   t   random_statei  (	   RD   R$   R   R&   R   R   R   R)   R7   (   R+   Ry   Rz   RR   R   R   t   frozent   rvs1t   rvs2Rv   t   pdf1t   pdf2t   logpdf1t   logpdf2(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_frozen_matrix_normal  s"    **	!!c      	   C` s|  xut  d d  D]d} x[t  d d  D]J} d t j | | f  } d t j |  d t j | | f  } d t j |  d t j | | f  } t d | d | d |  } | j d	 d
  } | j |  } | j |  }	 | j j	   }
 | j j	   } t j
 | |  } t j |
 d | d | } t j |
 d | d | } t | | d d t |	 | d d q& Wq Wd  S(   Ni   i   g333333?g      ?gffffff?R5   R   R   R   i  R-   Rt   g|=(   RD   R$   R   R&   R   R   R)   R7   RF   t   flattent   kronR   R   (   R+   Ry   Rz   RR   R   R   R   Rv   R   R   t   vecXt   vecMR-   R   R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_matches_multivariate6  s     **c      
   C` s  d } d } d t  j | | f  } d t  j |  d t  j | | f  } d t  j |  d t  j | | f  } d } t d | d | d	 |  } | j d
 | d d  } | j d
 | d d  }	 t  j | t  j d  d   d  d   d  d   f |	 t  j d  d   d  d   d  d   f f d d }
 t |
 j d | | | f  | j	 |
  } t | j d | f  xp t
 d  D]b } xY t
 |  D]K } t j	 |
 | | f d | d | d	 | } t | | | | f d  qWq}Wd  S(   Ni   i   g333333?g      ?gffffff?i
   R5   R   R   R   R   i  i  R   i    i   g|=(   R$   R   R&   R   R   t   concatenatet   newaxisR   R   R7   RD   R   (   R+   R   R   RR   R   R   R   R   t   X1t   X2Rv   t   array_logpdfRy   Rz   t   separate_logpdf(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_array_inputM  s$    **ec         C` sW  d } d } d t  j | | f  } d t  j |  d t  j | | f  } d t  j |  d t  j | | f  } d } t d | d | d	 |  } | j d
 | d d  } t  j | d d }	 t |	 | d d t  j | j | | |  j	  }
 t |
 | d d t  j t  j
 | d d  j | | |  j	  } t | | d d d  S(   Ni   i   g333333?g      ?gffffff?i  R5   R   R   R   R   i  R   i    R   g?i   i   (   R$   R   R&   R   R   R5   R   R-   t   reshapeRF   t   swapaxes(   R+   R   R   RR   R   R   R   R   Rv   t   sample_meant   sample_colcovt   sample_rowcov(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_momentsd  s    **"(	   R   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR     s   		'				t   TestDirichletc           B` s   e  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   Z d   Z RS(   c         C` s=  t  j j d  t  j j d d  } t  j j d d |  } t |  } t | j   t j |   t | j   t j |   t | j	   t j	 |   d } x t
 |  D] } t  j j d d |  } | t  j |  } t | j | d   t j | d  |   t | j | d   t j | d  |   q Wd  S(   Ni  i   i    g&.>id   i
   i(   R$   R/   R0   t   randintR   R   R   t   varR5   R   RD   R   R)   R7   (   R+   RJ   R   R   t	   num_testsRy   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_frozen_dirichlet|  s    *c         C` s   t  j j d  t  j d d d g  } t  j j | d d } t | j d	  t t t j	 | |  t t t j
 | |  t j	 | j |  t j	 | j d  |  t j
 | j |  t j
 | j d  |  d  S(
   Ni  g      ?g       @g      @R   i   i   i(   i   i   (   R$   R/   R0   R   R   R   R   R'   R(   R)   R7   RF   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt"   test_numpy_rvs_shape_compatibility  s    c         C` sv   t  j j d  d d d g } t  j j t  j d |  d d j } t t t j | |  t t t j	 | |  d  S(   Ni  g      ?g        g      @g&.>R   i   (
   R$   R/   R0   R   t   maximumRF   R'   R(   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_alpha_with_zeros  s
    'c         C` sv   t  j j d  d d d g } t  j j t  j d |  d d j } t t t j | |  t t t j	 | |  d  S(   Ni  g      ?g       g      @g&.>R   i   (
   R$   R/   R0   R   R   RF   R'   R(   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt    test_alpha_with_negative_entries  s
    'c         C` s   t  j d d d d g  } t  j d d d d g  } t j | |  t j | |  t  j d d d d g  } t t j | |  d	  t t j | |  t  j d	   d  S(
   Ng      ?g       @g      @g      @g?g        g?gffffff?i   (   R$   R   R   R)   R7   R   R8   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_data_with_zeros  s    c         C` sf   t  j d d d d g  } t  j d d d d g  } t t t j | |  t t t j | |  d  S(	   Ng      ?g      ?g      @g      @g?g        g?gffffff?(   R$   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt$   test_data_with_zeros_and_small_alpha  s    c         C` sf   t  j d d d d g  } t  j d d d d g  } t t t j | |  t t t j | |  d  S(	   Ng      ?g       @g      @g      @g?gg333333?gffffff?(   R$   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_data_with_negative_entries  s    c         C` sf   t  j d d d d g  } t  j d d d d g  } t t t j | |  t t t j | |  d  S(	   Ng      ?g       @g      @g      @g?g?g333333?gffffff?(   R$   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt    test_data_with_too_large_entries  s    c         C` s[   t  j d d d g  } t  j d  d } t t t j | |  t t t j | |  d  S(   Ng      ?g       @g      @i   i   i   (   i   i   i   (   R$   R   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_data_too_deep_c  s    c         C` sd   t  j d d g d d g g  } t  j d  d } t t t j | |  t t t j | |  d  S(	   Ng      ?g       @g      @g      @i   i   i   (   i   i   i   (   R$   R   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_alpha_too_deep  s    !c         C` sO   t  j d d d g  } t  j d  d } t j | |  t j | |  d  S(   Ng      ?g       @g      @i   i   (   i   i   (   R$   R   R   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_alpha_correct_depth  s    c         C` s[   t  j d d d g  } t  j d  d } t t t j | |  t t t j | |  d  S(   Ng      ?g       @g      @i   i   i   (   i   i   (   R$   R   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_non_simplex_data  s    c         C` s^   t  j d d d d g  } t  j d  d } t t t j | |  t t t j | |  d  S(   Ng      ?g       @g      @g      @i   i   (   i   i   (   R$   R   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_data_vector_too_short  s    c         C` s^   t  j d d d d g  } t  j d  d } t t t j | |  t t t j | |  d  S(   Ng      ?g       @g      @g      @i   i   (   i   i   (   R$   R   R   R'   R(   R   R)   R7   (   R+   R   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_data_vector_too_long  s    c         C` sl   t  j d d d g  } t |  } d
 d d g } d d d	 g } t | j   |  t | j   |  d  S(   Ng      ?g?g?g      (@g{Gz?gQ?g      ?g?g?gUUUUUU?(   R$   R   R   R   R   R5   (   R+   R   R   t   expected_vart   expected_mean(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_mean_and_var  s    c         C` s   t  j d g  } t |  } t | j   j d  t | j   j d  t | j d g  j d  t | j d g  j d  d  S(   Ng?i    g      ?(	   R$   R   R   R   R5   R1   R   R)   R7   (   R+   R   R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR6     s    c         C` s   t  j j d  t  j j d d  } t  j j d d |  } t |  } d } xb t |  D]T } t  j j d d |  } | t  j |  } t | j	 | d   | j	 |   q\ Wd  S(   Ni  i   i    g&.>id   i
   i(
   R$   R/   R0   R   R   R   RD   R   R   R)   (   R+   RJ   R   R   R   Ry   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt    test_K_and_K_minus_1_calls_equal  s    c         C` sN  t  j j d  t  j j d d  } t  j j d d |  } t |  } d } d } d  } x t |  D] } xi t |  D][ } t  j j d d |  }	 |	 t  j |	  }	 | d  k	 r t  j	 | |	 f  } q{ |	 } q{ W| j
 | j  }
 d  } xD | D]< } | j
 |  } | d  k	 r/t  j | |  } q | } q Wt |
 |  qh Wd  S(   Ni  i   i    g&.>id   i
   i   (   R$   R/   R0   R   R   R   R<   RD   R   t   vstackR)   RF   t   appendR   (   R+   RJ   R   R   R   t   num_multiplet   xmRy   t   mR4   t   rmt   rst   xsR   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_multiple_entry_calls  s,    

c         C` s   t  j j d  t  j j d d d  } t |  } t | d | d  } d } xa t |  D]S } t  j j d d d  } | t  j |  } t | j	 |  | j	 | g   q^ Wt | j
   | j
   d  t | j   | j   d  d  S(   Ni  g&.>id   i   i    i   i
   (   R$   R/   R0   R   R   R   RD   R   R   R)   R5   R   (   R+   R   R   t   bR   Ry   R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_2D_dirichlet_is_beta*  s    &(   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R  R6   R	  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR   z  s&   																
			c          C` s   t  j d d g  }  t  j d g g  } t t t |  |  y t |  |  Wn6 t k
 r } d } t t |  t |   |  n Xd  S(   Ng        g      ?s   Dimension mismatch(   R$   R   R'   R(   R   R   t   strt   len(   R,   t   sigmaR   t   msg(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt,   test_multivariate_normal_dimensions_mismatch;  s    t   TestWishartc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` sx  t  j d d d } d d g t  j d  t  j d t  j d d d g } xC | D]; } t d |  } t | j |  t | j j | j  qS Wt  j d d g d d g g  } d d g t  j d t  j d d g d d g g  g } xC | D]; } t d |  } t | j |  t | j j | j  q Wt t t d t  j	 d   t  j d d d } t t t d |  d  S(   Ni   t   ndmini   i    i   (   i   i   (
   R$   R   t   r_R   R   R~   R   R'   R(   t   eye(   R+   t
   true_scalet   scalesR~   t   w(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_scale_dimensionsO  s.    
	
c      	   C` s=  d d g t  j d  t  j d t  j d d d t  j d g d d g } t d d  } | j t  j d d d  } x$ | D] } t | j |  |  q Wd d d g t  j d t  j d d d g d d g } t d d  } | j t  j d d d g d d  } x$ | D] } t | j |  |  qWd d d g t  j d  t  j d t  j d d g d d g g  t  j d d g d d g g  d  d   d  d   t  j f g } t d t  j d   } | j t  j d d g d d g g  d  d   d  d   t  j f  } x$ | D] } t | j |  |  qWd  S(   Ni   R  i   i   i    (   i   i   i   (   i   i   (   R$   R   R  R   R)   R   R   R  (   R+   Rv   R   t   densityR4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_quantile_dimensionsv  s<    

!'	
11c   	      C` s  d } t  j t  j |  d  } t  j | | d d  | t  j | d d <t  j | j |  } g  } x t d  D]z } t  j t  j |  | d d  } t  j | | d d  | t  j | d d <t  j | j |  } | j |  qx Wt  j |  j } d d t  j	 d d d  f d | | f g } x | D] \ } } } t
 | |  } t | j   t
 j | |   t | j   t
 j | |   t | j   t
 j | |   t | j   t
 j | |   t | j |  t
 j | | |   q<Wd  S(	   Ni   i   i   RW   ii   i
   g?(   R$   R   R%   t   tril_indicesRE   RF   RD   R  R   R}   R   R   R   R5   t   modeR   R)   (	   R+   t   dimR~   Rv   Ry   R4   t
   parameterst   dfR   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR     s(    .$.c         C` s,  t  j j d  d } d } t  j |  } t  j d d d d t } t  j d d d d } x | D] } t | |  } t |  } t	 | j
   | j
    t	 | j   | j    t	 | j   | j    t	 | j |  | j |   | j d	 |  }	 | f }
 d
 } t d |
 | |	  qe Wd  S(   Ni^ i  i   i
   i   Rf   g?t   numR   g{Gz?R   (   R$   R/   R0   R  R%   Rh   R}   R   R   R   R   R5   R   R)   R   R
   (   R+   t   snR&  R~   t   df_rangeRv   R(  R   t   cR   t   argsR   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_1D_is_chisquared  s"    	c         C` s  t  j j d  d } d } d } t  j t  j d  d  } t  j d  | t  j d d d <t  j | j |  } t  j | d f  } | j j |  j |  j	   } t
 | |  } t | d	 | } t | j   | j    t | j   | j    t | j   | j    t  j d
 d d d }	 t | j |	  | j |	   | j d |  }
 | d | f } d } t d | | |
  d  S(   Ni^ i  i
   i   i   i   RW   iR~   g?R)  R   i    g{Gz?R   (   R$   R/   R0   R   R%   R$  RE   RF   R   t   squeezeR   R   R   R   R5   R   R}   R)   R   R
   (   R+   R*  R(  R&  R~   t   lamdat   sigma_lamdaR   R,  Rv   R   R-  R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_is_scaled_chisquared  s(    "!(   R   R   R!  R#  R   R.  R2  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR  N  s
   	'	1	 	t   TestMultinomialc           B` s}   e  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 RS(   c         C` s   t  j d d d  } t | d d d t  j d d g d	 d d g  } t | t j d d t  j d d g d	 d
 d g  } t | t j d d d  S(   Ni   i   i   g333333?gffffff?g&MtyRt   g:0yE>i    i(   i   i   (   g333333?gffffff?(   R   t   logpmfR   R$   t   NAN(   R+   t   vals1t   vals2t   vals3(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_logpmf
  s    !!c         C` s~   t  j d d d  } t j d d d  } t | | d d t  j d d
 d  } t j d d
 d  } t | | d d d  S(   Ni   i   i   g333333?gffffff?Rt   g:0yE>i   i   i   g?g?(   i   i   (   g333333?gffffff?(   i   i   (   g?g?(   R   R4  R   R   t   pmf(   R+   t   val1t   val2(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_reduces_binomial  s    c         C` s   d d d d g } } i
 d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d  6} x4 | D], } t  t j | | |  | | d d qi Wd  S(!   Ni   g      ?i   g       @g      @g     @?i    g     ?i   i   g      ?g      `?g     ?g      ?g      ?g      ?g      ?R   g+=g      ?g      ?g      ?(   i    i    i   (   i   i    i   (   i   i    i   (   i   i    i    (   i    i   i   (   i   i   i   (   i   i   i    (   i    i   i   (   i   i   i    (   i    i   i    (   R   R   R:  (   R+   RJ   t   pt   r_valsR4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_R  s    c         C` sg   t  j d d g d d d d d } t j j d  } | j  d d	 g d d d } t | |  d  S(
   Ni   i   g      @R   i   R   i{   g      ?g      ?(   R   R   R$   R/   t   RandomStateR   (   R+   t   sc_rvst   rndmt   np_rvs(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_rvs_np0  s    %c         C` sl  t  j d d d  } t | d d d t  j d d d  } t | d
 d d t  j d d g d d g g d d g d d g g g d d  } t | d d g d d g g d d t j d d t j } t  j | d d  } t | t j g  d t j  t  j d d g d d  } t | d d d t  j d d d g d d  d! d g  } t | d d d d  S("   Ni   i   Rt   g:0yE>i   i   i   g333333?gffffff?g5
?i    i   ii	   g?g?g*7?g<Wƌ?i   Rf   i   g      @gߦ?(   i   (   i   (   i   i   (   g333333?gffffff?(   g?g?(   i    i   (   g333333?gffffff?(   g333333?gffffff?gUUUUUU?gUUUUUU?(   R   R:  R   R$   R   t   float64R   (   R+   t   vals0R6  R7  R4   R8  t   vals4t   vals5(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_pmf7  s    6	%'c         C` s  t  j d d g d d d g d d g g  } t | d d	 g d
 d t  j d d g d d g d d g  } t | d d g d
 d t  j d d g d d g g g d d d g  } t | d d g g d
 d t  j d d g d g d g g g d d g  } t | d g d g g g d
 d t  j d d g d d g g d g g g g d d g  } t | d d g g g g d
 d d  S(   Ni   i   i   g?g?g?g?gv?g~jt?Rt   g:0yE>i   i    (   R   R:  R   (   R+   RG  R6  R7  R8  RH  (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_pmf_broadcastingL  s    -'00"9c         C` sS   t  j d d
  } d d d g d d d g d d d g g } t | | d d	 d  S(   Ni   g?g333333?g      ?g?igffffff?Rt   g:0yE>(   g?g333333?g      ?g      ?g?g      g333333ӿg      g      g      g433333ӿg      ?g?g      g      g      g      g      g      g      @g      ?(   R   R-   R   (   R+   t   cov1R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_cov\  s
    c         C` s9  t  j d d d g d d g g  } d d g d d g g d d g d d g g g } t | | d	 d
 t  j d d g d d g  } d d g d d g g d d g d d g g g } t | | d	 d
 t  j d d g d d g d d g g  } d d g d d g g d d g d! d# g g g } t | | d	 d
 d  S($   Ni   g?g?g?g?g?gܿgRt   g:0yE>i   g
ףp=
?g
ףp=
׿g333333?gffffff?g?g333333?iig333333?gzG?g333333gzGg333333gzGg333333?gzG?g       @g333333?g       g333333g       g333333g       @g333333?(   R   R-   R   (   R+   RL  R   t   cov3t   cov4t   cov5t   cov6(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_cov_broadcastingc  s    $00*c         C` s;   t  j d d d g  } t | t j d d  d d d  S(   Ni   g?g?Rt   g:0yE>(   R   R   R   R   (   R+   t   ent0(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR   q  s    c         C` s3  t  j d d g d d g  } t | t j d d  t j d d  g d d t  j d d g d d	 g d
 d g g  } t | t j d d  t j d d
  g d d t  j d g d g g d d	 g d
 d g g  } t | t j d d  t j d d
  g t j d d  t j d d
  g g d d d  S(   Ni   i   g?g333333?Rt   g:0yE>i   i   gffffff?g?g333333?(   R   R   R   R   (   R+   RS  t   ent1t   ent2(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_entropy_broadcastingw  s    ***0!'c         C` s5   t  j d d d g  } t | d d g d d d  S(   Ni   g?g?Rt   g:0yE>g      ?g      @(   R   R5   R   (   R+   t   mean1(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt	   test_mean  s    c         C` sG   t  j d d g d d g  } t | d d g d	 d
 g g d d d  S(   Ni   i   g?g?Rt   g:0yE>g      ?g      @g433333?g433333@(   R   R5   R   (   R+   RW  (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_mean_broadcasting  s    c         C` s  t  j j d  d } d } d d d d g d d d d	 g d d d d
 g d d d d g d d d d g g } t  j | d t  j } t | |  } t | j |  t j | | |   t | j |  t j | | |   t | j	   t j	 | |   d  S(   Ni  i   g?g?g333333?g?i    i   i   i
   i	   i   i   Rf   (   g?g?g333333?g?(
   R$   R/   R0   t   asarrayRF  R   R   R:  R4  R   (   R+   RJ   t   pvalsR4   t	   mn_frozen(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR     s    Q%%(   R   R   R9  R=  R@  RE  RJ  RK  RM  RR  R   RV  RX  RY  R   (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR3  	  s   	
											t   TestInvwishartc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c   	      C` s  d } t  j t  j |  d  } t  j | | d d  | t  j | d d <t  j | j |  } g  } x t d  D]z } t  j t  j |  | d d  } t  j | | d d  | t  j | d d <t  j | j |  } | j |  qx Wt  j |  j } d d t  j	 d d d  f d | | f g } x | D] \ } } } t
 | |  } t | j   t
 j | |   t | j   t
 j | |   t | j   t
 j | |   t | j |  t
 j | | |   q<Wd  S(	   Ni   i   i   RW   ii   i
   g?(   R$   R   R%   R$  RE   RF   RD   R  R   R}   R   R   R   R5   R%  R   R)   (	   R+   R&  R~   Rv   Ry   R4   R'  R(  t   iw(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR     s&    .$.c         C` s'  t  j j d  d } d } t  j |  } t  j d d d d t } t  j d d	 d
 d	 } x | D] } t | |  } t | d d d } t	 | j
   | j
    t	 | j   | j    t	 | j |  | j |   | j d |  }	 | d d d f }
 d } t d |
 | |	  qe Wd  S(   Ni^ i  i   i   i   i   Rf   g?i
   R)  R~   g      ?R   i    g{Gz?R   g      ?g      ?(   R$   R/   R0   R  R%   Rh   R}   R   R   R   R   R5   R)   R   R
   (   R+   R*  R&  R~   R+  Rv   R(  R^  t   igR   R-  R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_1D_is_invgamma  s     c         C` s  d } d } t  j |  } d | d <d | d <t | |  } t | |  } t  j j d  t j | |  } t  j j d  | j   } t  j j d  t j | |  } t  j j d  | j   }	 t  j j d  t  j j d d  }
 t  j t  j j	 |  t  j j	 | d  t  j j	 | d  f d } t  j
 |  } |
 | t  j | d	 d
 <t  j j |  } | j |  } t  j | | j  } t  j j t  j j |   } | j |  } t  j j t  j | | j   } t | |  t | |  t | |  t |	 |  d  S(   Ni   i
   g      ?i    i   i R   i   RW   i(   i    i   (   i   i    (   R$   R  R   R   R/   R0   R   t   normalR  t	   chisquareR   R$  RP   t   choleskyRE   RF   t   invR   (   R+   R&  R(  R~   R   R^  t   w_rvst   frozen_w_rvst   iw_rvst   frozen_iw_rvst   covariancest	   variancest   At   Dt   DAt   manual_w_rvst   iDt   iDAt   manual_iw_rvs(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_wishart_invwishart_2D_rvs  sD    

!c         C` s  t  j d d d d g d d d d g d d d d g d d d d g g  } t  j d d d d g d d d d g d d d d g d d d d g g  } t  j | | g  } | j   } t |  t  j d  } t | d j | d  | d d	 t | d j | d  | d d	 d
 S(   s   Regression test for gh-8844.i   i   i    g      ?i   ii   R   gV瞯<N(   R$   R   t   copyR   R  R   RE   (   R+   t   a0t   a1t   at   ainvt   ident(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_cho_inv_batch  s    
$c         C` sn  t  j d d d d g d d d d g d d d d g d d d d g g  } t  j d d d d g d d d d g d d d	 d g d d d d g g  } d
 } t j | | |  } | j d } t  j j |  \ } } t  j j |  \ } } t  j j | |  }	 | d | | | d t  j d  t	 | d |  | | d d | d |	 j
   }
 t | |
  d S(   s   Regression test for gh-8844.i   i   i    g      ?i   i	   i   i   i   i   N(   R$   R   R   R7   R   RP   Rl   t   solveR8   R!   t   traceR   (   R+   Rv   t   Psit   nut   probR>  t   sigt   logdetXt	   logdetPsiRR   t   expected(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_logpdf_4x4%  s     Z(   R   R   R   R`  Rr  Ry  R  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR]    s
   	 		;	t   TestSpecialOrthoGroupc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j j d  t j d  } t  j d d d g d d d g d	 d
 d g g  } t | |  t  j j d d  } t j d d | } t | |  d  S(   Ni  i   g(fg^A.g*B?g:d?g2ugi}?gR#xlF?g^`D?g?R0   R   (   R$   R/   R0   R   R   R   R   RA  (   R+   R4   R  R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_reproducibility?  s    c         C` sP   t  t t j d   t  t t j d  t  t t j d  t  t t j d  d  S(   Ni   i   g      @(   i   i   (   R'   R(   R   R   R<   (   R+   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_invalid_dimK  s    c         C` sJ   d } t  |  } | j d d  } t  j | d d } t | |  d  S(   Ni   R   i  (   R   R   R   (   R+   R&  R   R   R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_frozen_matrixQ  s
    c         C` s   g  t  d d  D]( } t  d  D] } t j |  ^ q  q } g  | D] } t j j |  ^ qE } t | d g d d d x: | D]2 } t t j | | j	  t j
 | j d   q Wd  S(	   Ni   i   i   g      ?i   Rt   gvIh%<=i    (   RD   R   R   R$   RP   Rj   R   R   RE   RF   R  R   (   R+   R&  Ry   R  R4   t   dets(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_det_and_orthoZ  s    (%c         ` s   d } d } d } t  j j d  t j | d |   d d d d f } t   f d   | D  } g  | D]+ } | D] } | | k rv | | f ^ qv ql } g  | D]' \ }	 }
 t | |	 | |
  d ^ q } t | g t |  |  d  S(   Ni   i  g?i  R   i    i   i   i   i   c         3` sH   |  ]> \ } } | | f t  g    D] } | | | ^ q"  f Vq d  S(   N(   t   sorted(   t   .0t   ert   ecR4   (   R  (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pys	   <genexpr>~  s    (   i    i    (   i    i   (   i   i   (   i   i   (	   R$   R/   R0   R   R   t   dictR   R   R  (   R+   R&  t   samplest   ks_probt   elst   projt   e0t   e1t   pairst   p0t   p1t   ks_tests(    (   R  sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt	   test_haarh  s    
84(   R   R   R  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR  >  s
   					t   TestOrthoGroupc           B` sA   e  Z d    Z d   Z d   Z d   Z e j j d    Z	 RS(   c         C` s   t  j j d  t j d  } t j d d d } t t  j j |  d  t  j d d d g d d	 d
 g d d d g g  } t	 | |  t	 | |  d  S(   Ni  i   R   igmS9?g8e,˿gRVϿgob2g	,ʶgC}Ȇ?gF-YD?g:kO?g-C?(
   R$   R/   R0   R   R   R   RP   Rj   R   R   (   R+   R4   t   x2R  (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR    s    c         C` sP   t  t t j d   t  t t j d  t  t t j d  t  t t j d  d  S(   Ni   i   g      @(   i   i   (   R'   R(   R   R   R<   (   R+   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR    s    c         C` s  g  t  d d  D]. } g  t  d  D] } t j |  ^ q# ^ q } t j g  | D]+ } g  | D] } t j j |  ^ q^ ^ qQ  } t t j |  t j	 | j
  d d t d g d g  | D]& } t j | d k   d j
 d ^ q  t g  | D]& } t j | d k   d j
 d ^ q d g d  xK | D]C } x: | D]2 } t t j | | j  t j | j
 d   qCWq6Wd  S(   Ni   i   i
   Rt   gvIh%<=i    (   RD   R   R   R$   R   RP   Rj   R   t   fabsR   R   R   t   nonzeroR   RE   RF   R  (   R+   R&  Ry   R  t   xxR4   R  R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR    s    AA(AAc         ` s   d } d } d } t  j j d  t j | d |   d d d d f } t   f d   | D  } g  | D]+ } | D] } | | k rv | | f ^ qv ql } g  | D]' \ }	 }
 t | |	 | |
  d ^ q } t | g t |  |  d  S(   Ni   i  g?i  R   i    i   i   i   i   c         3` sH   |  ]> \ } } | | f t  g    D] } | | | ^ q"  f Vq d  S(   N(   R  (   R  R  R  R4   (   R  (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pys	   <genexpr>  s    (   i    i    (   i    i   (   i   i   (   i   i   (	   R$   R/   R0   R   R   R  R   R   R  (   R+   R&  R  R  R  R  R  R  R  R  R  R  (    (   R  sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR    s    
84c         ` s   t  j j d  d   } xu t d d  D]d   d d   f d  } | |  } | t j j j  } t j j | |  \ } } t	 d |  q) Wd  S(	   Ni  c         S` s@   t  j j t  j j d |  |  f   \ } } } t  j | |  S(   NR   (   R$   RP   RQ   R/   Ra  RE   (   R&  RS   t   _sRT   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   random_ortho  s    0i   i   i  g|=c         ` sr   t  j g  t |  D]/ } t  j |  d    |  d    d  ^ q  } | t  j j | | d | j 7} | S(   NR&  i   R   (   R$   R   RD   R   R/   R   R   (   R   R   t   epst   _t   stats(   R&  (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   generate_test_statistics  s
    B#g?(
   R$   R/   R0   RD   RO   R  R   R   R   R   (   R+   R  R  R  R{   t   _DR>  (    (   R&  sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_pairwise_distances  s    		(
   R   R   R  R  R  R  t   pytestt   markt   slowR  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR    s
   				t   TestRandomCorrelationc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s   t  j j d  d } t j d  } t j d d d } t  j d d d	 d
 g d d d d g d	 d d d g d
 d d d g g  } t | |  t | |  d  S(   Ni  g      ?g?g333333?g      ?R   g      ?gʿg3LU?giƖ\g``+ϿgO0)?gqɨ?(   g      ?g?g333333?g      ?(   g      ?g?g333333?g      ?(   g      ?g?g333333?g      ?(   R$   R/   R0   R   R   R   R   (   R+   R   R4   R  R  (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR    s    c         C` s   t  t t j d   t  t t j d  t  t t j d  t  t t j d g  t  t t j d d g d d g g  t  t t j d d g  t  t t j d d d g  d  S(	   Nt   testg      @i   i   i   i   g      g?(   R'   R(   R   R   R<   (   R+   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_invalid_eigs  s    %c         C` s  d   } t  j j d  g  t d d  D]$ } | | t  j j d |   ^ q) } | j d d d d g  g  | D] } d g t |  ^ qs } g  | D] } t j |  ^ q } g  | D]! } t  j	 t  j
 j |   ^ q } g  | D] } t  j |  ^ q }	 t | |	 d	 d
 d d
 g  | D] } t  j |  ^ q$}
 x0 t |
 |  D] \ } } t | | d	 d
 qOWx$ | D] } t | | j d	 d
 qyWd  S(   Nc         S` s   |  | t  |  S(   N(   R   (   Ry   R   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR     s    i{   i   i   R   i   i    g      ?Rt   gvIh%<=R   (   R$   R/   R0   RD   R   R  R  R   R   R  RP   Rj   t   prodR   R   t   zipRF   (   R+   R   Ry   R   R   R   R  R4   R  t
   dets_knownt   diagsRv  R  (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_definition  s    	:&".""c      
   C` s  t  j d d g d d g g d t } t j |  } t | t  j d d g d d g g   t  j d d   t  j d d g d d g g  } t  j d d g d t  j d d  g g d t } t j | j    } t | | j	 j
 |  j
 |   t  j d	 d g d d
 g g d t } t j | j    } t | | j	 j
 |  j
 |   Wd  QXt  j d d g d d g g d t } t j | j    } t | d d  t  j d d g d d g g d t } t j | j    } t | d d  d  S(   Ng?i    i   Rf   t   overt   ignoreigu <7~g?g?i   gHz>(   i    i    gMk   @(   i    i    (   R$   R   Rh   R   t   _to_corrR   t   errstatet	   nextafterRs  RF   RE   (   R+   R  t   gt   m0(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_to_corr  s"    '(!3"'(''(   R   R   R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR    s   				$t   TestUnitaryGroupc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s   t  j j d  t j d  } t j d d d } t  j d d d g d d d g d d d g g  } t | |  t | |  d  S(   Ni  i   R   g~p?y        yZ?g뉦?y        ĭ?g8Z?y        &4?gEHξr?y        8i?ge??y        +ݓ?gu=ٿy        B۽'?gqXQÿy        ?gN6ҿy        zܷ?g! 8l?y        2W'?y~p?yZ?y뉦?ĭ?y8Z?&4?yEHξr?8i?ye??+ݓݿyu=ٿB۽'?yqXQÿ?yN6ҿzܷy! 8l?2W'?(   R$   R/   R0   R   R   R   R   (   R+   R4   R  R  (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR  <  s    c         C` sP   t  t t j d   t  t t j d  t  t t j d  t  t t j d  d  S(   Ni   i   g      @(   i   i   (   R'   R(   R   R   R<   (   R+   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR  H  s    c         C` s   g  t  d d  D]( } t  d  D] } t j |  ^ q  q } xF | D]> } t t j | | j   j  t j | j	 d  d d qE Wd  S(   Ni   i   i   i    R   gV瞯<(
   RD   R   R   R   R$   RE   t   conjRF   R  R   (   R+   R&  Ry   R  R4   (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_unitarityN  s
    (c         C` s   d } d } t  j j d  t j | d | } t  j g  | D] } t j j |  ^ q>  } t  j	 | j
 | j  } t | j   t t  j d t  j  j  } t | j d k  d  S(   Ni   i  i  R   i   g?(   R$   R/   R0   R   R   R
  RO   RP   t   eigvalst   arctan2t   imagt   realR   t   ravelR   R   R*   R   t   pvalue(   R+   R&  R  R  R4   R   t   res(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR  W  s    .,(   R   R   R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyR  ;  s   				c         C` s   |  j  } d |  _  |  j d d |  t j |   } |  j d d |  } t j |  } | j d d |  } t | |  | |  _  d  S(   Ni  R   i   (   R   R   t   picklet   dumpst   loadsR   (   t   distfnR-  RC  RL   t   r0t	   unpickledt   r1(    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   check_picklingh  s    		c       	   C` s   t  j d  }  d |  d <d |  d <t d g t t  j d g  f g t d |  f g t d |  f g t d d d d	 g f g t d g t	 d g g } x. | D]& \ } } t
 | |  t | |  q Wd  S(   Ni   g      ?i    i   g      ?i
   i   g?g?i   (   i    i   (   i   i    (    (   i   (   i   (   R$   R  R   R   R   R   R   R   R   R   R"   R  (   R~   t   distsR  R-  (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   test_random_state_property|  s    

		(A   t   __doc__t
   __future__R    R   R   R  t   numpy.testingR   R   R   R   R   R   R  R	   R'   t   test_continuous_basicR
   R   R$   t   scipy.linalgRO   t   scipy.stats._multivariateR   R   R   t   scipy.statsR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   scipy.integrateR    t   scipy.specialR!   t   common_testsR"   t   objectR#   R   R   R  R  R3  R]  R  R  R  R  R  R  (    (    (    sB   lib/python2.7/site-packages/scipy/stats/tests/test_multivariate.pyt   <module>   sJ   .( 	E][-	