
_]c           @` sD  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 m Z d  d l Z d  d l m Z d  d l Z d  d l Z d e f d     YZ d e f d     YZ d	 e f d
     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ e d k r@e   n  d S(   i    (   t   divisiont   absolute_importt   print_functionN(   t   TestCaset   run_module_suitet   assert_t   assert_raisest   assert_equalt   assert_warnst   suppress_warnings(   t   asbytest   TestSeed_Intelc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s.  i d d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6} xT | D]L } t  j d d | } t | j   d |  t | j d  | |  qE Wi d d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6} xT | D]L } t  j d d | } t | j   d |  t | j d  | |  q Wd  S(   NiL  t   MT19937iY  t	   SFMT19937i    t   WHiz  t   MT2203t   MCG31i   t   R250t   MRG32K3At   MCG59t   brngi  i{  i   id   i  i  I    (   t   rndt   RandomStateR   t	   get_statet   randint(   t   selft   evs_zero_seedt	   brng_algot   st   evs_max_seed(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_scalar(   s$    c         C` s   t  j t d  d d } t | j d  d  t  j t j d  d d } t | j d  d  t  j d g d d } t | j d  d  t  j d g d d } t | j d  d	  d  S(
   Ni
   R   R   i  i  i    iL  I    i{  (   R   R   t   rangeR   R   t   npt   arange(   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt
   test_array<   s    c         C` s*   t  t t j d  t  t t j d  d  S(   Ng      i(   R   t	   TypeErrorR   R   t
   ValueError(   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_invalid_scalarF   s    c         C` s~   t  t t j d g  t  t t j d g  t  t t j d g  t  t t j d d d g  t  t t j d d d g  d  S(   Ng      iI       i   i   i(   R   R#   R   R   R$   (   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_invalid_arrayK   s
    c         C` s3   t  j d d  } | j d  | j d d  d  S(   NR   t   nondeterministici
   i    (   R   R   t   randR   (   R   t   rs(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_non_deterministicS   s    (   t   __name__t
   __module__R   R"   R%   R&   R*   (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR   '   s
   		
		t   TestBinomial_Intelc           B` s   e  Z d    Z d   Z RS(   c         C` sn   t  j d d d } xR d d d g D]A } t t j d |  d k  t  j j t j | |  |  q% Wd  S(   Ni   t   dtypet   inti    g      ?i   (   R    t   zerosR   R   t   binomialt   testingt   assert_array_equal(   R   R0   t   p(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_n_zeroY   s    c         C` s   t  t t j d t j  d  S(   Ni   (   R   R$   R   R1   R    t   nan(   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_p_is_nanb   s    (   R+   R,   R5   R7   (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR-   X   s   		t   TestMultinomial_Intelc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s   t  j d d d g  d  S(   Nid   g?g?(   R   t   multinomial(   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt
   test_basich   s    c         C` s#   t  j d d d d d d g  d  S(   Nid   g?g?g        (   R   R9   (   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_zero_probabilityk   s    c         C` sw   t  d t j d d  k o& d k  n  t j d d d  } t  t j d | k   t  t j | d k    d  S(   Niii   (   R   R   R   R    t   all(   R   t   x(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_int_negative_intervaln   s    ,c         C` s  d d g } t  t j d | t j d   j d  t  t j d | t j d   j d  t  t j d | t j d   j d  t  t j d | d d g  j d  t  t j d | d  j d	  t  t j d | t j d
   j d  t t t j d | t j	 d   d  S(   Ng      ?i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (
   R   R   R9   R    t   uint32t   shapet   arrayR   R#   t   float(   R   R4   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt	   test_sizet   s    (((%!(   R+   R,   R:   R;   R>   RC   (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR8   g   s   			t   TestSetState_Intelc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s4   d |  _  t j |  j   |  _ |  j j   |  _ d  S(   NiI(   t   seedR   R   t   prngR   t   state(   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   setUp   s    	c         C` sT   |  j  j d  } |  j  j |  j  |  j  j d  } t t j | | k   d  S(   Ni   (   RF   t   tomaxintt	   set_stateRG   R   R    R<   (   R   t   oldt   new(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR:      s    c         C` sZ   |  j  j d d  } |  j  j |  j  |  j  j d d  } t t j | | k   d  S(   Nt   sizei   (   RF   t   standard_normalRJ   RG   R   R    R<   (   R   RK   RL   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_gaussian_reset   s    c         C` ss   |  j  j   |  j  j   } |  j  j d d  } |  j  j |  |  j  j d d  } t t j | | k   d  S(   NRM   i   (   RF   RN   R   RJ   R   R    R<   (   R   RG   RK   RL   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt    test_gaussian_reset_in_media_res   s    c         C` s   t  |  j  d k r |  j d  } |  j j d d  } |  j j |  |  j j d d  } |  j j |  j  |  j j d d  } t t j | | k   t t j | | k   n  d  S(   Ni   iRM   i   (   t   lenRG   RF   RN   RJ   R   R    R<   (   R   t	   old_statet   x1t   x2t   x3(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_backwards_compatibility   s    c         C` s   |  j  j d d  d  S(   Ng      ?(   RF   t   negative_binomial(   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_negative_binomial   s    (   R+   R,   RH   R:   RO   RP   RV   RX   (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRD      s   				
	t   TestRandint_Intelc        	   B` s   e  Z e j Z e j e j e j e j	 e j
 e j e j e j e j g	 Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s    t  t |  j d d t j d  S(   Ni   R.   (   R   R#   t   rfuncR    RB   (   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_unsupported_type   s    c         C` s   x |  j  D] } | t j k r% d n t j |  j } | t j k rL d n t j |  j d } t t |  j | d | d | t t |  j | | d d | t t |  j | | d | t t |  j d d d | q
 Wd  S(   Ni    i   i   R.   (	   t   itypeR    t   bool_t   iinfot   mint   maxR   R$   RZ   (   R   t   dtt   lbndt   ubnd(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_bounds_checking   s    '+  c      	   C` s  x |  j  D] } | t j k r% d n t j |  j } | t j k rL d n t j |  j d } | d } t |  j | | d d d d | |  | } t |  j | | d d d d | |  | | d } t |  j | | d d d d | |  q
 Wd  S(   Ni    i   i   RM   i  R.   (   R\   R    R]   R^   R_   R`   R   RZ   (   R   Ra   Rb   Rc   t   tgt(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_rng_zero_and_extremes   s    '+
))c      	   C` s   t  j   xy |  j d D]j } xa d d d g D]P } |  j d | d d	 d | } t | j   | k   t | j   d k  q. Wq W|  j d d d d
 d t j } t | j   d k   t | j   d k  d  S(   Ni   i   i   i   i   RM   R.   i    i   i   (	   R   RE   R\   RZ   R   R`   R_   R    t   bool(   R   Ra   Rc   t   vals(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_in_bounds_fuzz   s    
!c         C` s  d d  l  } i	 d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6d
 d 6} x |  j d D] } t j d d d t j d k r |  j d d d d d | } n$ |  j d d d d d | j   } | j | j	 t
 j   j   } t d  t | t
 j |  j | k  q_ Wt j d d d |  j d d d d d t
 j j	 t
 j  } | j |  j   } t | t
 j t
 j  j | k  d  S(   Ni    t    4fee98a6885457da67c39331a9ec336fRg   t    80a5ff69c315ab6f80b03da1d570b656t   int16t    15a3c379b6c7b0f296b162194eab68bct   int32t    ea9875f9334c2775b00d4976b85a1458t   int64t    0f56333af47de94930c799806158a274t   int8t   uint16R?   t   uint64t   uint8i   i  R   R   t   littlei   RM   i  R.   t    i   (   t   hashlibR\   R   RE   t   syst	   byteorderRZ   t   byteswapt   md5t   viewR    Rr   t	   hexdigestt   printR   R.   t   nameRg   (   R   Rx   Re   Ra   t   valt   res(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_repeatability   s,    

!$!
$-c         C` sW  x |  j  D] } | t j k r% d n t j |  j } | t j k rL d n t j |  j d } |  j | | d | } |  j | j t j |   q
 Wx t j	 t j
 t j f D] } | t j	 k r d n t j |  j } | t j	 k r d n t j |  j d } |  j | | d | } |  j t | d   |  j t |  |  q Wd  S(   Ni    i   i   R.   (   R\   R    R]   R^   R_   R`   RZ   t   assertEqualR.   Rg   R/   t   longt   assertFalset   hasattrt   type(   R   Ra   Rb   Rc   t   sample(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_respect_dtype_singleton   s    '+ '+(   R+   R,   R   R   RZ   R    R]   Rr   Ru   Rl   Rs   Rn   R?   Rp   Rt   R\   R[   Rd   Rf   Ri   R   R   (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRY      s   							"t   TestRandomDist_Intelc           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 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.   Z0 d/   Z1 d0   Z2 d1   Z3 d2   Z4 d3   Z5 d4   Z6 d5   Z7 d6   Z8 d7   Z9 d8   Z: d9   Z; RS(:   c         C` s   d |  _  d |  _ d  S(   NiIR   (   RE   R   (   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRH     s    	c         C` so   t  j |  j |  j  t  j d d  } t j d d g d d g d d g g  } t j j | | d	 d
 d  S(   Ni   i   g  {?g   "?g   ?g  @ۑ?g  ?g  `c"?t   decimali
   (   R   RE   R   R(   R    RA   R2   t   assert_array_almost_equal(   R   t   actualt   desired(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt	   test_rand  s    	c         C` so   t  j |  j |  j  t  j d d  } t j d d g d d g d d g g  } t j j | | d	 d
 d  S(   Ni   i   ga!@g% go`gRۉK?gQЧ?gv	/@R   i
   (   R   RE   R   t   randnR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt
   test_randn%  s    	c         C` so   t  j |  j |  j  t  j d d d d } t j d d g d d	 g d d
 g g  } t j j | |  d  S(   Niic   RM   i   i   i_   iii)   i`   (   i   i   (   R   RE   R   R   R    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_randint-  s    *c      
   C` s   t  j |  j |  j  t   D } | j t  } t  j d d d d } t t |  d k  Wd  QXt	 j
 d d g d	 d
 g d d g g  } t	 j j | |  d  S(   Niic   RM   i   i   i   i`   iii*   i   ia   (   i   i   (   R   RE   R   R	   t   recordt   DeprecationWarningt   random_integersR   RQ   R    RA   R2   R3   (   R   t   supt   wR   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_random_integers3  s    *c         C` s   t    V } | j t  } t j t j d  j t j d  j  } t t	 |  d k  Wd  QXt j d  j } t j
 j | |  d  S(   Nt   li   (   R	   R   R   R   R   R    R^   R`   R   RQ   R2   R   (   R   R   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_random_integers_max_int=  s    c      
   C` st   t  j   b t  j d t  t t t j t j d  j	  t t t j t j d  j	 t j d  j	  Wd  QXd  S(   Nt   errorR   (
   t   warningst   catch_warningst   simplefilterR   R   R   R   R    R^   R`   (   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_random_integers_deprecatedK  s    c         C` sl   t  j |  j |  j  t  j d  } t j d d g d d g d d g g  } t j j | | d	 d
 d  S(   Ni   i   g  {?g   "?g   ?g  @ۑ?g  ?g  `c"?R   i
   (   i   i   (   R   RE   R   t   random_sampleR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_random_sampleY  s    	c         C` sZ   t  j |  j |  j  t  j d d  } t j d d d d g  } t j j | |  d  S(   Ni   i   i    i   (   R   RE   R   t   choiceR    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_choice_uniform_replacea  s    c         C` sl   t  j |  j |  j  t  j d d d d d d d g } t j d d d d g  } t j j | |  d  S(   Ni   R4   g?g?i   i    i   (   R   RE   R   R   R    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_choice_nonuniform_replaceg  s    $c         C` s]   t  j |  j |  j  t  j d d d t } t j d d d g  } t j j | |  d  S(   Ni   i   t   replacei   i   (	   R   RE   R   R   t   FalseR    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_choice_uniform_noreplacem  s    c      
   C` so   t  j |  j |  j  t  j d d d t d d d d d g } t j d d d	 g  } t j j | |  d  S(
   Ni   i   R   R4   g?g333333?g      ?i    i   (	   R   RE   R   R   R   R    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt    test_choice_nonuniform_noreplaces  s
    c         C` sf   t  j |  j |  j  t  j d d d d g d  } t j d d d d g  } t j j | |  d  S(   Nt   at   bt   ct   di   (   R   RE   R   R   R    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_choice_nonintegerz  s    c         C` sg  t  j } t t | d d  t t | d d  t t | d d g d d g g d  t t | g  d  t t | d d d d g d d d d g d d g g t t | d d g d d d	 d	 d
 g t t | d d g d d d d g t t | d d g d d d	 d	 g t t | d d d g d d t t t | d d d g d d t d d d d g d  S(   Nii   g      @i   i   i   R4   g      ?g?g?g?gR   i    (   R   R   R   R$   R   (   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_choice_exceptions  s    	%(%%"!c      	   C` s{  d d g } t  t j t j d d t   t  t j t j d d t   t  t j t j d d t d |   t  t j t j d d t d |   t  t j t j d d g d t   t  t j d  g d t d  k  t j d d g  } t j	 d d t
 } | | d <t  t j | d t | k  t   } t  t j t j d | d t   t  t j t j d | d t   t  t j t j d | d t d |   t  t j t j d | d t d |   t  t j t j d d g | d t   t  t j d  g | d t j d k  t j d d g  } t j	 d d t
 } | | d <t  t j | | d t j   | k  d } d d d d d
 d g } t  t j d | d t j |  t  t j d | d t j |  t  t j d | d t d | j |  t  t j d | d t d | j |  t  t j t j d  | d t j |  d  S(   Ng?g?i   R   R4   i   R.   i    i   g?g?i   (   i   i   (   R   R    t   isscalarR   R   t   TrueR   t   NoneRA   t   emptyt   objectt   tuplet   ndimt   itemR@   R!   (   R   R4   R   t   arrR   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_choice_return_shape  s:    ""((("
	&&,,,(
(""((c         C` sH   t  j |  j |  j  t  j d  } t d  } t j j | |  d  S(   Ni
   s
   {*2(   R   RE   R   t   bytesR
   R    R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt
   test_bytes  s    c         C` s   x d   d   d   d   d   d   d   d   d	   d
   g
 D] } t  j |  j |  j  | d d d d d d d d d d g
  } t  j |  | } | d d d d d d d d d d g
  } t j j | |  qC Wd  S(   Nc         S` s   t  j g   S(   N(   R    RA   (   R=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   <lambda>  Rw   c         S` s   |  S(   N(    (   R=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` s   t  j |   j t  j  S(   N(   R    t   asarrayt   astypeRr   (   R=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` s   t  j |   j t  j  S(   N(   R    R   R   t   float32(   R=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` s   t  j |   j t  j  S(   N(   R    R   R   t	   complex64(   R=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` s   t  j |   j t  S(   N(   R    R   R   R   (   R=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` s   g  |  D] } | | f ^ q S(   N(    (   R=   t   i(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` s&   t  j g  |  D] } | | g ^ q  S(   N(   R    R   (   R=   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` s   t  j |  |  g  j S(   N(   R    t   vstackt   T(   R=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     Rw   c         S` sD   t  j g  |  D] } | | f ^ q d t d f d t  j d f g  S(   NR   i   R   (   i   (   i   (   R    R   R   Rn   (   R=   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     s   "i   i   i   i   i   i   i   i   i	   i    (   R   RE   R   t   shuffleR    R2   R3   (   R   t   convt   alistR   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_shuffle  s     	**c         C` s   t  j j t  j t d  d  d d d  } t  j j t  j d  d d d  } | j   } | j   } x t d  D]~ } t j |  t	 t
 | j | j  t
 | j | j   t j |  t	 t
 | j | j  t
 | j | j   qz Wd  S(	   Ni   i   i   i   i   ii2   (   i   i   (   R    t   mat   masked_valuest   reshapeR   R!   t   copyR   R   R   t   sortedt   datat   mask(   R   R   R   t   a_origt   b_origR   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_shuffle_masked  s    /&,c         C` su   t  j |  j |  j  t  j d d d d } t j d d g d d	 g d
 d g g  } t j j | | d d d  S(   Ng?g?RM   i   i   g'ҪЊ?g(fg>gk/PW?g9h">gQ4>g\گ>R   i
   (   i   i   (   R   RE   R   t   betaR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt	   test_beta  s    		c         C` so   t  j |  j |  j  t  j d d d d } t j d d g d d g d	 d
 g g  } t j j | |  d  S(   NgZd;Y@gv/?RM   i   i   i+   i0   i7   i.   i5   (   i   i   (   R   RE   R   R1   R    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_binomial  s    *c         C` sr   t  j |  j |  j  t  j d d d } t j d d g d d g d	 d
 g g  } t j j | | d d d  S(   Ni2   RM   i   i   gfwXzI@g0I@gZ *N@g#S`I@g(`*fJ@g!NH@R   i   (   i   i   (   R   RE   R   t	   chisquareR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_chisquare  s    	c         C` s   t  j |  j |  j  t j d d g  } t  j | d d } t j d d g d d	 g g d
 d g d d g g d d g d d g g g  } t j j | | d d d  S(   NgI<I@gEZC@RM   i   i   g}A?C?g|x?gw4?g}%?g
؏?gKN@?ggr?g 0?g?gʬh?gx?g?R   i
   (   i   i   (   R   RE   R   R    RA   t	   dirichletR2   R   (   R   t   alphaR   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_dirichlet  s    		c         C` s
  t  j d d g  } t t j | t  j d   j d  t t j | t  j d   j d  t t j | t  j d   j d  t t j | d d g  j d  t t j | d	  j d
  t t j | t  j d   j d  t t t j | t  j	 d   d  S(   NgI<I@gEZC@i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (
   R    RA   R   R   R   R?   R@   R   R#   RB   (   R   R4   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_dirichlet_size  s    %%%"%c         C` sr   t  j |  j |  j  t  j d d d } t j d d g d d g d	 d
 g g  } t j j | | d d d  S(   Ng8EGr?RM   i   i   g#$M?g5#@g&?gx(?g靳?gc98?R   i
   (   i   i   (   R   RE   R   t   exponentialR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_exponential  s    	c         C` su   t  j |  j |  j  t  j d d d d } t j d d g d d	 g d
 d g g  } t j j | | d d d  S(   Ni   iM   RM   i   i   ga3?g3B9?gu @g<?gLt?g[?R   i	   (   i   i   (   R   RE   R   t   fR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_f  s    	c         C` su   t  j |  j |  j  t  j d d d d } t j d d g d d g d	 d
 g g  } t j j | | d d d  S(   Ni   i   RM   i   g!R%.@g-@g,F-6@gX>`-@g]8S0@g
,@R   i   (   i   i   (   R   RE   R   t   gammaR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt
   test_gamma&  s    	c         C` sl   t  j |  j |  j  t  j d d d	 } t j d d g d d g d d g g  } t j j | |  d  S(
   Ng_c97ݚ?RM   i   i   i    i   i   i   (   i   i   (   R   RE   R   t	   geometricR    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_geometric/  s    *c         C` s{   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d d  S(   Nt   locg_c97ݚ?t   scaleg       @RM   i   i   g?ܐ: g=(
@glkgD?gvkk" gӵ."g㩀_[!R   i   (   i   i   (   R   RE   R   t   gumbelR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_gumbel6  s    	c         C` s  t  j |  j |  j  t  j d d d d d } t j d d g d d g d d g g  } t j j | |  t  j d	 d
 d d d } t j d d d d g  } t j j | |  t  j d d
 d d d } t j d d d d g  } t j j | |  t  j d
 d	 d d d } t j d
 d
 d
 d
 g  } t j j | |  t  j d
 d d d d } t j d
 d
 d
 d
 g  } t j j | |  d  S(   Ng333333$@g      @i   RM   i   i   i
   i	   i   i    i   i   i   (   i   i   (   R   RE   R   t   hypergeometricR    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_hypergeometric?  s     *c         C` s{   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d d  S(   NR   g_c97ݚ?R   g       @RM   i   i   goAd.?gcG[
gZ&
g
Cπ|@g@ XYi?g7o/	@R   i
   (   i   i   (   R   RE   R   t   laplaceR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_laplaceX  s    	c         C` s{   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d d  S(   NR   g_c97ݚ?R   g       @RM   i   i   g) @g̉g.gO?gI=Mg?g*!@R   i
   (   i   i   (   R   RE   R   t   logisticR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_logistica  s    	c      	   C` s   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d t  j d d d d d d d d  } t j d d g d d g d d g g  } t j j | | d d d  S(   Nt   meang_c97ݚ?t   sigmag       @RM   i   i   g{T@gȥa?gT?g
LJR@g5D?gYIy
Y@R   i   t   methods   Box-Muller2gyk?gBӗ?gVc:@gKt=:@g
Rg<?g?i   (   i   i   (   i   i   (   R   RE   R   t	   lognormalR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_lognormalj  s    			c         C` so   t  j |  j |  j  t  j d d d d
  } t j d d g d d g d d	 g g  } t j j | |  d  S(   NR4   gƀ@?RM   i   i   i   i   i   i   (   i   i   (   R   RE   R   t	   logseriesR    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_logseriesy  s    *c      
   C` s'  t  j |  j d |  j } | j d d g d d d } t j d d d	 | j } t j j	 | j
 d
 d  |  t j d d d d d d g d d d d d d g g d d d d d d g d d d d d d g g d d d d d d g d d d d d d g g g | j  } t j j	 | |  d  S(   NR   i   i   g      @i   RM   i   i   R.   t   axisii   i   i   i   i    gUUUUUU?(   i   i   (   i   i   (   R   R   RE   R   R9   R    t   fullR.   R2   R3   t   sumRA   (   R   R)   R   R   t   expected(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_multinomial  s    --<c         C` s4  t  j |  j |  j  d } d d g d d g g } d } t  j | | |  } t j d d g d	 d g g d
 d g d d g g d d g d d g g g  } t j j | | d d t  j | |  } t j d d g  } t j j | | d d d d g } d d g d d g g } t t	 t  j | |  d  S(   Ng_c97ݚ?i
   i   i    i   i   g:r,ag      $@g??g"Rq?g+XJ?gy8>{gZ:?R   gC"M݆?g|=(   g_c97ݚ?i
   (   i   i   g8   ?g8   ?(
   R   RE   R   t   multivariate_normalR    RA   R2   R   R   t   RuntimeWarning(   R   R   t   covRM   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_multivariate_normal  s$    		c         C` s   t  j |  j |  j  d } d d g d d g g } d } t  j | | | d d	 } t j d
 d g d d g g d d g d d g g d d g d d g g g  } t j j | | d d d  S(   Ng_c97ݚ?i
   i   i    g      i   i   R   t   ICDFg|Ny@gL7n@g-jgQFW&@gDb˭?gIjcjt(@gG=g3f#@g2Ak?g׀b%@ggZg5L@#@R   (   g_c97ݚ?i
   (   i   i   (   R   RE   R   t   multinormal_choleskyR    RA   R2   R   (   R   R   t   chol_matRM   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_multinormal_cholesky  s    		c         C` su   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | |  d  S(   Nt   nid   R4   g|Pk?RM   i   i   i  i  i  i  i  i  (   i   i   (   R   RE   R   RW   R    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRX     s    *c         C` s   t  j |  j |  j  t  j d d d d d d  } t j d d g d	 d
 g d d g g  } t j j | | d d t  j d d d d d d  } t j d d g d d g d d g g  } t j j | | d d d  S(   Nt   dfi   t   noncRM   i   i   gZx$?|@g11!@g"1GK1@g̜9@gq@gV#@R   i   g      ?g?gi+((meM?gsmm?g}'?gPz6@g
?gޥ?(   i   i   (   i   i   (   R   RE   R   t   noncentral_chisquareR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_noncentral_chisquare  s    		c      
   C` s   t  j |  j |  j  t  j d d d d d d d d  } t j d	 d
 g d d g d d g g  } t j j | | d d d  S(   Nt   dfnumi   t   dfdeni   R  i   RM   i   g*y\^?g(W&l?gßNX@ggxf?gȨfcU?g:*~?R   i   (   i   i   (   R   RE   R   t   noncentral_fR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_noncentral_f  s    		c      	   C` su  t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d t  j |  j |  j  t  j d d d d d d d d  } t j d d g d d g d d g g  } t j j | | d d t  j |  j |  j  t  j d d d d d d  d d  } t j d d g d d g d d g g  } t j j | | d d d  S(!   NR   g_c97ݚ?R   g       @RM   i   i   ghx@gpg9}=gqi?g?g6\@R   i   R   t	   BoxMullergېW?ggg4]	@ggWq@i   t
   BoxMuller2gN6?gH$β~ggΟNE@(   i   i   (   i   i   (   i   i   (   R   RE   R   t   normalR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_normal  s$    	$	$	c         C` su   t  j |  j |  j  t  j d d d d  } t j d d g d d	 g d
 d g g  } t j j | | d d d  S(   NR   g_c97ݚ?RM   i   i   g8v?g;7VBg!1
3AgOXx,.@gqhi@gc|?t   nulpi   (   i   i   (   R   RE   R   t   paretoR    RA   R2   t   assert_array_almost_equal_nulp(   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_pareto  s    		c         C` s   t  j |  j |  j  t  j d d d d  } t j d d g d d g d d g g  } t j j | |  t  j |  j |  j  t  j d d d d  } t j d	 d
 g d d g d d g g  } t j j | |  d  S(   Nt   lamg_c97ݚ?RM   i   i   i   i    gEJ@i  i  i  i  i  i"  (   i   i   (   i   i   (   R   RE   R   t   poissonR    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_poisson  s    **c         C` sv   t  j d  j } d } t t t j |  t t t j | g d  t t t j |  t t t j | g d  d  S(   NR   ii
   (   R    R^   R`   R   R$   R   R  (   R   t   lambigt   lamneg(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_poisson_exceptions  s    c         C` su   t  j |  j |  j  t  j d d d d  } t j d d g d d	 g d
 d g g  } t j j | | d d d  S(   NR   g_c97ݚ?RM   i   i   gUD?gO6AV=g}>gάӯ?g>$Tpt?gz=?R   i
   (   i   i   (   R   RE   R   t   powerR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt
   test_power  s    	c         C` su   t  j |  j |  j  t  j d d d d  } t j d d g d d	 g d
 d g g  } t j j | | d d d  S(   NR   i
   RM   i   i   g^?gxt <@gV־2@gdP?k @g[/G&@gU\R?R   i   (   i   i   (   R   RE   R   t   rayleighR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_rayleigh  s    	c         C` so   t  j |  j |  j  t  j d d  } t j d d g d d g d d	 g g  } t j j | | d
 d d  S(   NRM   i   i   g1k3@g~0gWJcg_?gߖbX߭?gq ':@R   i	   (   i   i   (   R   RE   R   t   standard_cauchyR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_standard_cauchy  s    	c         C` so   t  j |  j |  j  t  j d d  } t j d d g d d g d d	 g g  } t j j | | d
 d d  S(   NRM   i   i   g"?g#
@g~f2?g3-8?gK??gn?R   i
   (   i   i   (   R   RE   R   t   standard_exponentialR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_standard_exponential%  s    	c         C` su   t  j |  j |  j  t  j d d d d  } t j d d g d d g d	 d
 g g  } t j j | | d d d  S(   NR@   i   RM   i   gJ@giۗe@g@g՚>@gLx
@gFI.@R   i   (   i   i   (   R   RE   R   t   standard_gammaR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_standard_gamma-  s    	c         C` s   t  j |  j |  j  t  j d d  } t j d d g d d g d d	 g g  } t j j | | d
 d t  j |  j |  j  t  j d d d d  } t j d d g d d g d d g g  } t j j | | d
 d d  S(   NRM   i   i   ga!@g% go`gRۉK?gQЧ?gv	/@R   i   R   R  gE (?gvo?g5gPYݿgbRsgwH?(   i   i   (   i   i   (   R   RE   R   RN   R    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_standard_normal5  s    		c         C` su   t  j |  j |  j  t  j d d d d  } t j d d g d d	 g d
 d g g  } t j j | | d d d  S(   NR  i
   RM   i   i   g.+g_Âb?gKćf?gtgQ.r@geJ,(?R   (   i   i   (   R   RE   R   t
   standard_tR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_standard_tD  s    	c      
   C` s   t  j |  j |  j  t  j d d d d d d d d  } t j d
 d g d d g d d g g  } t j j | | d d d  S(   Nt   leftg{Gz@t   modeg(\u$@t   rightgףp=
W4@RM   i   i   g2@g>iT\@gYU3ϧ!@g2O+@g`K ;w'@g[ڨk2@R   i
   (   i   i   (   R   RE   R   t
   triangularR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_triangularL  s    		c         C` s{   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d d  S(   Nt   lowgGz?t   highgGz%@RM   i   i   gף$@g7?gQ'Q@gp=Y@g=
e;@gk^$@R   i
   (   i   i   (   R   RE   R   t   uniformR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_uniformU  s    	c         C` s   t  j d  j } t  j d  j } t j } t  j j t | t  j	 d  t  j j t | d t  j	  t j | |  t j d | d | d  d  S(   NRB   i    R*  R+  g ؅W4vC(
   R    t   finfoR_   R`   R   R,  R2   R   t   OverflowErrort   inf(   R   t   fmint   fmaxt   func(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_uniform_range_bounds]  s    	c         C` s{   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d d  S(   Nt   mugGz?t   kappagp=
ף?RM   i   i   gǬ?gQ?g~9 @g!8?gp<n?g"}\: @R   i
   (   i   i   (   R   RE   R   t   vonmisesR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_vonmisesk  s    	c         C` sW   t  j |  j |  j  t  j d d d d d d  } t j j t j |  j    d  S(	   NR5  g        R6  gg5_PG>RM   i
   i   i@B (	   R   RE   R   R7  R    R2   R   t   isfiniteR<   (   R   t   r(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_vonmises_smalls  s    c         C` s{   t  j |  j |  j  t  j d d d d d d  } t j d d	 g d
 d g d d g g  } t j j | | d d d  S(   NR   gGz?R   gp=
ף?RM   i   i   g*.?g(sAa9?gY.@g]_?gC$?g-:?R   i
   (   i   i   (   R   RE   R   t   waldR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt	   test_waldy  s    	c         C` su   t  j |  j |  j  t  j d d d d  } t j d d g d d	 g d
 d g g  } t j j | | d d d  S(   NR   gGz?RM   i   i   gs5{?gOx@gW?g@n?gU?g"?R   i
   (   i   i   (   R   RE   R   t   weibullR    RA   R2   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_weibull  s    	c         C` so   t  j |  j |  j  t  j d d d d
  } t j d d g d d	 g d d g g  } t j j | |  d  S(   NR   gGz?RM   i   i   iGi   i   i{(   i   i   (   R   RE   R   t   zipfR    RA   R2   R3   (   R   R   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt	   test_zipf  s    *(<   R+   R,   RH   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   RX   R  R	  R  R  R  R  R  R  R  R  R!  R"  R$  R)  R-  R4  R8  R;  R=  R?  RA  (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     st   					
										$				
																																															t   TestThread_Intelc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  d  |  _ d  S(   Ni   (   R   t   seeds(   R   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRH     s    c   
      C` s^  d d l  m } t j t |  j  f |  } t j t |  j  f |  } g  t |  j |  D]0 \ } } | d | d t j |  | f  ^ qa } g  | D] }	 |	 j	   ^ q g  | D] }	 |	 j
   ^ q x6 t |  j |  D]" \ } } | t j |  |  q Wt j   j j d k rGt j d k rGt j j | |  n t j j | |  d  S(   Ni    (   t   Threadt   targett   argsi   t   win32(   t	   threadingRD  R    R   RQ   RC  t   zipR   R   t   startt   joint   intpR.   t   itemsizeRy   t   platformR2   R   R3   (
   R   t   functiont   szRD  t   out1t   out2R   t   ot   tR=   (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   check_function  s    F'c         C` s    d   } |  j  | d d d  S(   Nc         S` s   |  j  d d  | d <d  S(   NRM   i'  .(   R  (   RG   t   out(    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt
   gen_random  s    RP  i'  (   i'  (   RU  (   R   RW  (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR    s    	c         C` s    d   } |  j  | d d d  S(   Nc         S` s#   |  j  d t j d   | d <d  S(   NR   id   i  .(   id   i  (   R   R    t   ones(   RG   RV  (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRW    s    RP  id   i  (   id   i  (   RU  (   R   RW  (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   test_exp  s    	c         C` s    d   } |  j  | d d d  S(   Nc         S` s'   |  j  d d g d d d | d <d  S(	   Ni
   i   g      @i   RM   i'  .gUUUUUU?(   R9   (   RG   RV  (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRW    s    RP  i'  i   (   i'  i   (   RU  (   R   RW  (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyR     s    	(   R+   R,   RH   RU  R  RY  R   (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyRB    s
   				t   __main__(   t
   __future__R    R   R   t   numpyR    t   numpy.testingR   R   R   R   R   R   R	   t
   mkl_randomR   t   numpy.compatR
   Ry   R   R   R-   R8   RD   RY   R   R   RB  R+   (    (    (    s;   lib/python2.7/site-packages/mkl_random/tests/test_random.pyt   <module>   s"   41/`  +