ó
¦–Õ\c           @   s—  d  d l  Z  e  j d ƒ d  d l Z d  d l Z d  d l j Z d  d l m	 Z	 d  d l
 m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z m 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# e  j$ j% e& e d ƒ d d ƒd „  ƒ Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d  „  Z- d! „  Z. d S("   iÿÿÿÿNt   numpy(   t	   key_split(   t   Array(   t   randomt   exponentialt   normal(   t	   assert_eq(   t   _dumpst   _loadsc          C   s~   t  j j d ƒ }  |  j d d d d d d ƒ} t | | ƒ t  j j d ƒ }  |  j d d d d d d ƒ} t | | ƒ d  S(   Ni   i
   i   t   sizet   chunks(   t   daR   t   RandomStateR   R   (   t   statet   xt   y(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_RandomState   s    c          C   s”   t  j j d ƒ }  |  j d d d d d d ƒ} t  j j d ƒ }  |  j d d d d d d ƒ} | j d d ƒ | j d d ƒ k j ƒ  s t ‚ d  S(	   Ni   i
   i   R	   R
   i   t	   schedulert	   processes(   R   R   R   R   t   computet   allt   AssertionError(   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_concurrency   s
    c           C   s(   d t  j j d ƒ j j k s$ t ‚ d  S(   Nt   meani   (   R   R   R   R   t   __doc__R   (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_doc_randomstate"   s    c          C   sS   t  j j d ƒ }  |  j d d d d d d ƒ} t t | ƒ ƒ } t | | ƒ d  S(   Ni   i
   i   R	   R
   (   R   R   R   R   R   R   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_serializability&   s    c          C   s}   t  j j d ƒ j d d d d ƒ }  t  j j d ƒ j d d d d ƒ } t |  j ƒ t | j ƒ k sl t ‚ t |  | ƒ d  S(   Ni*   R	   iè  R
   i
   (   R   R   R   R   t   sett   daskR   R   (   t	   samples_1t	   samples_2(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt%   test_determinisim_through_dask_values/   s    $$$c          C   sÐ   t  j j d ƒ }  t  j j d ƒ } t |  j d d
 d d ƒ j ƒ t | j d d d d ƒ j ƒ k sl t ‚ t |  j d d d d d d	 d d ƒ j ƒ t | j d d d d d d	 d d ƒ j ƒ k sÌ t ‚ d  S(   Ni*   R	   id   R
   i
   t   locg      @t   scaleg      @(   id   id   (   i
   i
   (   id   id   (   i
   i
   (   R   R   R   t   sortedR   R   R   (   t   state1t   state2(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt!   test_randomstate_consistent_names7   s    **c          C   s¬   t  d d d ƒ}  t |  t ƒ s' t ‚ t |  j t ƒ rB |  j sH t ‚ |  j d k s] t ‚ |  j d d	 f k sx t ‚ t t	 j
 |  ƒ j ƒ } t | ƒ d k s¨ t ‚ d  S(
   Ni
   R
   i   iZ   (   i
   i
   (   i   i   (   i
   i
   (   i   i   (   i   i   (   R   t
   isinstanceR   R   t   namet   strt   shapeR
   R   t   npt   arrayt   flatt   len(   t   aR   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_random@   s    !c          C   sÝ   t  d d d d ƒ}  t |  t ƒ s* t ‚ t |  j t ƒ rE |  j sK t ‚ |  j d	 k s` t ‚ |  j d
 d f k s{ t ‚ t j	 |  ƒ } d | j
 ƒ  k  o§ d k  n s² t ‚ t | j ƒ } t | ƒ d k sÙ t ‚ d  S(   Niè  i
   R
   i   i † iZ   (   i
   i
   (   i   i   (   i
   i
   (   i   i   (   i   i   (   R   R&   R   R   R'   R(   R)   R
   R*   R+   R   R   R,   R-   (   R.   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt!   test_parametrized_random_functionL   s    !(c       
   C   sq   t  d d d d d d d d ƒ }  t |  t ƒ s6 t ‚ t j |  ƒ } d	 | j ƒ  k  ob d
 k  n sm t ‚ d  S(   NR    g      $@R!   gš™™™™™¹?R	   i
   R
   i   i   i   (   i
   i
   (   i   i   (   R   R&   R   R   R*   R+   R   (   R.   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_kwargsZ   s    !c          C   s@   t  d d d ƒ}  t  d d d ƒ} |  j | j k s< t ‚ d  S(   Ni
   R
   i   (   i
   i
   (   i   i   (   i
   i
   (   i   i   (   R   R'   R   (   R.   t   b(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_unique_namesa   s    c           C   sC   d t  j k s t ‚ d t  j k s* t ‚ d t j k s? t ‚ d  S(   NR   s   # doctest: +SKIP(   R   R   R   t   __name__R   (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt	   test_docsh   s    c           C   s   t  d d d d d ƒd  S(   Ni
   i   i@B R
   i † (   i@B i@B (   i † i † (   R   (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt%   test_can_make_really_big_random_arrayn   s    c          C   sª   t  j j d ƒ t  j j d d d d ƒ }  t  j j d d d d ƒ } t  j j d ƒ t  j j d d d d ƒ } t  j j d d d d ƒ } t |  | ƒ t | | ƒ d  S(   Ni{   R	   i
   R
   i   (   R   R   t   seedR   R   (   R   R   R.   R2   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_random_seedr   s    c          C   s‰   t  j j d ƒ j d d d ƒ}  t  j j d ƒ j d d d ƒd  } t  j j d ƒ j d d d ƒd  } t |  | ƒ t |  | ƒ d  S(   Ni{   i   R
   id   iÈ   (   R   R   R   R   (   t   x1t   x2t   x3(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_consistent_across_sizes   s
    !%%c           C   s¥  t  j j d d d d d d ƒj ƒ  t  j j d d d d d d ƒj ƒ  t  j j d d d d d ƒj ƒ  t  j j d d d d d ƒj ƒ  t  j j d d d d d d ƒj ƒ  t  j j d d d d d d ƒj ƒ  t  j j	 d d d d d ƒj ƒ  t  j j
 d d d d d ƒj ƒ  t  j j d d d d d d d ƒj ƒ  t  j j d d d d ƒ j ƒ  t  j j d d d d ƒ j ƒ  t  j j d d d d ƒ j ƒ  t  j j d d d d d ƒj ƒ  t  j j d	 d d
 g d d d d d ƒj ƒ  t  j j d d d d d d ƒj ƒ  t  j j d d d d d d ƒj ƒ  t  j j d d d d d d d ƒj ƒ  t  j j d d d d d d ƒj ƒ  t  j j d d d d d ƒj ƒ  t  j j d d d d ƒ j ƒ  t  j j d d d d d ƒj ƒ  t  j j d d d d ƒ j ƒ  t  j j d d d d ƒ j ƒ  t  j j d d d d d d d ƒj ƒ  t  j j d d d d ƒ j ƒ  t  j j d d d d d d ƒj ƒ  t  j j d d d d d d ƒj ƒ  t  j j d d d d d ƒj ƒ  t  j j d d d d d ƒj ƒ  t  j j  d d d d ƒ j ƒ  t  j j! d d d d ƒ j ƒ  t  j j" d d d d d ƒj ƒ  t  j j# d d d d ƒ j ƒ  t  j j$ d d d d d ƒj ƒ  d  S(   Ni   i   R	   i   R
   i   i
   g      à?i   g      @i   (%   R   R   t   betaR   t   binomialt	   chisquareR   t   ft   gammat	   geometrict   gumbelt   hypergeometrict   laplacet   logistict	   lognormalt	   logseriest   multinomialt   negative_binomialt   noncentral_chisquaret   noncentral_fR   t   paretot   poissont   powert   rayleight   random_samplet
   triangulart   uniformt   vonmisest   waldt   weibullt   zipft   standard_cauchyt   standard_exponentialt   standard_gammat   standard_normalt
   standard_t(    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_random_all‡   sD    %%""%%""("0%%(%""(%%"""t   broadcast_tot   reasons)   requires numpy 1.10 method "broadcast_to"c          C   sÜ  t  j d ƒ j d ƒ }  t j d d d ƒ} t j j |  d d ƒj ƒ  j d k sZ t	 ‚ xe |  | f D]W } t j j
 | d d d ƒ} | j | j k s  t	 ‚ | j ƒ  j | j k sg t	 ‚ qg Wt j j
 | d d d ƒ} t | j ƒ j t | j ƒ ƒ st	 ‚ t j j
 t  j d ƒ t j d d d ƒd d ƒj ƒ  j d k sLt	 ‚ t j j
 d t  j d ƒ d t j d d d ƒd	 d d d ƒ j ƒ  j d  k s t	 ‚ t j t ƒ - t j j
 |  t  j d! ƒ d	 d" d d ƒWd  QXx| t  j d
 ƒ t j d
 d d# ƒd f D]S } t j j
 d | d d d$ ƒ} d | j ƒ  j ƒ  k  oNd k  n st	 ‚ qWt  j d ƒ d } t j | d d% ƒ} t j j
 | d d d& ƒ} d | j ƒ  j ƒ  | j ƒ  k  oÍd k  n sØt	 ‚ d  S('   Ni   i   i   i   R
   i   R!   R    R	   id   i2   iè  g{®Gáz„?i   i°  i
   gš™™™™™é?g333333ó?(   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   i   i   i   (   i   i   i   i   (   i   i   i   i   (   i   i   (   i   i   i   (   i2   (   i2   (   i   (   i
   (   R*   t   aranget   reshapeR   t   onesR   RN   R   R)   R   R   R   R   t   issubsett   pytestt   raisest
   ValueErrorR   t
   from_array(   t   arrt   daonesR   R   t   oR.   t   z(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_array_broadcasting±   s2    -"'..2c          C   sª   x£ d d d f g D] \ }  } t  j j d d d g d d	 |  d
 | ƒ} t j j d d d g d d	 |  ƒ} | j | j k o— | j ƒ  j k n s t ‚ q Wd  S(   Ni   i   i   i   i   i   g      @i   R	   R
   (   i   i   (   i   i   (   i   i   (   R   R   RI   R*   R)   R   R   (   R	   R
   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_multinomial×   s    ,&c          C   s*  t  j j d d d ƒj }  d } d } t j j d d | d | ƒ} | j |  k sZ t ‚ | j | k so t ‚ | j ƒ  } | j |  k s t ‚ | j | k s¥ t ‚ t  j d d d d d	 g d
 d ƒ} t j	 | d d ƒ} x’ | | g D]„ } t j j | d | d | ƒ} | j ƒ  } | j | j k s3t ‚ | j | j k sKt ‚ t
 t  j | ƒ ƒ j | ƒ së t ‚ që Wt  j d d d d d g ƒ } t j	 | d d ƒ}	 x® | | f | |	 f g D]” \ } }
 t j j | d | d | d |
 ƒ} | j ƒ  } | j | j k st ‚ | j | j k s+t ‚ t
 t  j | ƒ ƒ j | d ƒ s¿t ‚ q¿Wt  j j d d d d t  j d g ƒ ƒj }  t j j d d | d | d | ƒ} | j ƒ  } | j |  k sÉt ‚ | j |  k sÞt ‚ d | d  d  … d  f d  f | | d  d  … d  f f | | d  f d | f d d d d g f g } xL | D]D \ } }
 t j t ƒ ' t j j | d | d | d |
 ƒWd  QXqHWt j t ƒ ' t j j | d | d | d t ƒWd  QXt j j | d | j d d d d t ƒ} | j ƒ  } t | ƒ t t  j | ƒ ƒ k s&t ‚ d  S(   Ni   R	   i
   i   i   R
   i   i   i	   t   dtypet   f8i   i    gš™™™™™É?g333333Ó?t   piÿÿÿÿiþÿÿÿt   replace(    (   i
   i   (    (   iÿÿÿÿN(   R*   R   t   choiceRn   R   R   R)   R   R+   Rg   R   t   uniqueRc   t   NoneRd   Re   Rf   t   NotImplementedErrort   FalseR-   (   t   np_dtypeR	   R
   R   t   rest   np_at   da_aR.   t   np_pt   da_pRp   t   errs(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_choiceß   sX    $(%$,-$	,(+c       	   C   sŠ   t  j j i d d 6ƒ k t j j d d d ƒ}  |  j d d f k sM t ‚ t j j d d d ƒ} | j d d f k s€ t ‚ Wd  QXd  S(   Nt   128MiBs   array.chunk-sizei'  R
   iÿÿÿÿt   autoiâ  i   iÄ	  i   (   i'  i'  (   iÿÿÿÿR€   (   i'  (   iâ  (   iâ  iâ  iâ  iâ  iâ  iâ  iâ  iâ  (   i'  i'  (   iÄ	  (   iÄ	  iÄ	  iÄ	  iÄ	  (   iÄ	  (   iÄ	  iÄ	  iÄ	  iÄ	  (   R   t   configR   R   R   R
   R   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt    test_create_with_auto_dimensions  s
    c          C   s[   t  j j d d d d	 d d
 ƒj }  |  j d ƒ s9 t ‚ t t |  ƒ ƒ d k  sW t ‚ d  S(   Ni    i   R	   iè  R
   iô  R   i
   (   iè  (   iô  (   R   R   R   R'   t
   startswithR   R-   R   (   R'   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt
   test_names!  s    $c             s  t  j d ƒ ‰  t j j d ‡  f d †  ƒ }  |  j d d d d d d ƒ} t | | ƒ t j j d ‡  f d
 †  d d ƒ }  |  j d d d d d d ƒ} t j j d ‡  f d †  d d ƒ }  |  j d d d d d d ƒ} | j | j k sô t ‚ t | | ƒ d  S(   Nt	   randomgenR   c            s   ˆ  j  ˆ  j |  ƒ ƒ S(   N(   t   RandomGeneratort   DSFMT(   R7   (   R…   (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   <lambda>+  t    i    i   R	   i
   R
   i   c            s   ˆ  j  ˆ  j |  ƒ ƒ S(   N(   R†   R‡   (   R7   (   R…   (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyRˆ   0  R‰   R7   i{   c            s   ˆ  j  ˆ  j |  ƒ ƒ S(   N(   R†   R‡   (   R7   (   R…   (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyRˆ   5  R‰   (   i   (   i   (   i   (	   Rd   t   importorskipR   R   R   R   R   R'   R   (   t   rsR   R.   R2   (    (   R…   s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_external_randomstate_class(  s    		c          C   s[   t  j j i d d 6ƒ < t j j d ƒ }  d |  j k  oF d k  n sQ t ‚ Wd  QXd  S(   Ns   50 MiBs   array.chunk-sizei'  i   i    (   i'  i'  (   R   R   R   R   R   t   npartitionsR   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_auto_chunks=  s    c          C   sb   t  j j d d d d d d ƒ}  t |  |  ƒ |  j d k sC t ‚ |  j ƒ  j d k s^ t ‚ d  S(   Ni    iÿ   R	   i
   Rn   t   uint8(   R   R   t   randintR   Rn   R   R   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   test_randint_dtypeC  s    !(/   Rd   RŠ   R    R*   R   t
   dask.arrayR+   R   t
   dask.utilsR   t   dask.array.coreR   t   dask.array.randomR   R   R   t   dask.array.utilsR   t   dask.multiprocessingR   R   R   R   R   R   R   R%   R/   R0   R1   R3   R5   R6   R8   R<   R]   t   markt   skipift   hasattrRl   Rm   R~   R‚   R„   RŒ   RŽ   R‘   (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_random.pyt   <module>   sB   	
																	*%		9					