ó
¦–Õ\c           @   sv  d  d l  Z  d  d l m Z 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 e j d ƒ d „  Z d „  Z d	 „  Z d
 „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d „  d  „  d! „  d" „  d# „  d$ „  g Z e j j d% e ƒ d& „  ƒ Z d' „  Z e j j d% e ƒ d( „  ƒ Z e j j d% e ƒ d) „  ƒ Z d* „  Z d+ „  Z d, „  Z d- „  Z e j j d. dE ƒ e j j d1 d2 d3 d4 d5 d6 d7 d8 d9 d: g	 ƒ d; „  ƒ ƒ Z e j j d1 d< d= g ƒ d> „  ƒ Z d? „  Z  d@ „  Z! dA „  Z" dB „  Z# dC „  Z$ dD „  Z% d S(F   iÿÿÿÿN(   t   product(   t   tokenize(   t	   assert_eq(   t   deepcopys   dask.array.mac          C   s!  t  j j d d d g d t t t g d d ƒ}  t  j j d d d g d t t t g d d ƒ} t  j j d d d g d t d d ƒ} t |  ƒ t |  ƒ k s¥ t ‚ t | ƒ t | ƒ k sÃ t ‚ t | ƒ t | ƒ k sá t ‚ t |  ƒ t | ƒ k sÿ t ‚ t |  ƒ t | ƒ k st ‚ d  S(   Ni   i   i   t   maskt
   fill_valuei
   i    (   t   npt   mat   masked_arrayt   Truet   FalseR   t   AssertionError(   t   mt   m2t   m3(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_tokenize_masked_array   s    00'c          C   s\   t  j j d d d g d t t t g d d ƒ}  t j |  d d	 d t ƒ} t | |  ƒ d  S(
   Ni   i   i   R   R   i
   t   chunkst   asarray(   i   (   R   R   R   R	   R
   t   dat
   from_arrayR   (   R   t   dm(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_from_array_masked_array   s    0c          C   sô   t  j j d d g d d d g ƒ}  t j |  d |  j d t ƒ} | j ƒ  } i  } t | d | ƒ} t j j	 t t
 g d d g ƒ } t | | ƒ t | |  ƒ t | j ƒ  t  j j ƒ sÂ t ‚ t | |  ƒ t | j ƒ  t  j j ƒ sð t ‚ d  S(   Ni   i   R   i    R   R   t   memo(   R   R   R   R   R   t   shapeR
   t   copyR   t   masked_whereR	   R   t
   isinstancet   computeR   (   t   tt   xt   yR   t   y2t   xx(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_copy_deepcopy    s    $!!c         C   s   |  S(   N(    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   <lambda>2   t    c         C   s   t  j |  ƒ S(   N(   R   t   expm1(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   3   R#   c         C   s   d |  S(   Ni   (    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   4   R#   c         C   s   |  d S(   Ni   (    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   5   R#   c         C   s   |  d S(   Ni   (    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   6   R#   c         C   s   |  |  S(   N(    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   7   R#   c         C   s   |  |  S(   N(    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   8   R#   c         C   s   |  d S(   Ni    (    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   9   R#   c         C   s   |  d  d  … d f S(   Ni   (    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   :   R#   c         C   s   |  d  d … d  d d … f S(   Ni   i   (   t   None(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   ;   R#   c         C   s   |  j  S(   N(   t   T(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   <   R#   c         C   s   t  j |  d ƒ S(   Ni   i   i    (   i   i   i    (   R   t	   transpose(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   =   R#   c         C   s
   |  j  ƒ  S(   N(   t   sum(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   >   R#   c         C   s   |  j  t j |  j d ƒ ƒ S(   Niÿÿÿÿ(   t   dotR   t   arangeR   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   ?   R#   c         C   s   |  j  t j |  j d ƒ ƒ S(   Niÿÿÿÿ(   R)   R   t   eyeR   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   @   R#   c         C   s,   t  j |  t j |  j d  ƒ d d d g ƒS(   Ni   t   axesi    i   (   i    i   (   i    i   (   R   t	   tensordotR   t   onesR   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   A   R#   c         C   s   |  j  d d ƒ S(   Nt   axisi    (   R(   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   B   R#   c         C   s   |  j  d d ƒ S(   NR/   i    (   t   max(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   C   R#   c         C   s   |  j  d d ƒ S(   NR/   i   i   (   i   i   (   R(   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   D   R#   c         C   s   |  j  t j ƒ S(   N(   t   astypeR   t
   complex128(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   E   R#   c         C   s   |  j  d „  ƒ S(   Nc         S   s   |  d S(   Ni   (    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   F   R#   (   t
   map_blocks(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   F   R#   c         C   s   |  j  d ƒ S(   Ni   (   t   round(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   G   R#   c         C   s,   |  j  |  j d |  j d |  j d f ƒ S(   Ni    i   i   (   t   reshapeR   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   H   R#   c         C   s
   t  |  ƒ S(   N(   t   abs(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   I   R#   c         C   s
   |  d k S(   Ng      à?(    (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   J   R#   c         C   s   |  j  d ƒ S(   Ni   (   i   i   i   (   t   rechunk(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   K   R#   c         C   s   |  j  d ƒ S(   Ni   i   (   i   i   i   (   R7   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   L   R#   t   funcc         C   s¨   t  j j d d d	 ƒ} d | | d k  <t  j j | d ƒ } |  | ƒ } |  | ƒ } t | t  j j | d ƒ ƒ | j r¤ | j ƒ  } t | t	 j j
 ƒ s¤ t ‚ n  d  S(
   Ni   i   i   R   i   i    gš™™™™™Ù?(   i   i   i   (   i   i   i   (   R   t   randomR   t   masked_equalR   t   filledR   R   R   R   R   R   (   R8   R   R   R    t   yyt   zz(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt
   test_basicP   s    	c       
   C   sJ  t  j j d	 d d
 ƒ}  d |  |  d k  <t  j j d d d ƒ} d | | d k  <t  j j |  d ƒ } t  j j | d ƒ } t t  j |  | d d ƒt  j j t  j | | d d ƒd ƒ ƒ t t  j |  | d d ƒt  j j t  j | | d d ƒd ƒ ƒ t t  j |  | d d d f ƒt  j j t  j | | d d d f ƒd ƒ ƒ d  S(   Ni   i   i   R   i   i    gš™™™™™Ù?R,   (   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   R9   R   R:   R   R-   R;   (   R   R   R    R<   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_tensordota   s    ((c         C   s´   t  j j d	 d d
 ƒ} t  j j d d d ƒ} d | | d k  <t  j j | d ƒ } t  j | | g d d ƒ} t  j | | g d d ƒ} |  | ƒ } |  | ƒ } t | | ƒ d  S(   Ni   i   i   R   i   i    gš™™™™™Ù?R/   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   R   R9   R   R:   t   concatenateR   (   R8   R   R   R<   t   dt   st   ddt   ss(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_mixed_concatenater   s    c         C   si   t  j j d	 d d
 ƒ} d | | d k  <d „  } | j | ƒ } |  | ƒ } |  | ƒ } t | | ƒ d  S(   Ni   i   R   i   i   i    gš™™™™™Ù?c         S   s)   t  j  ƒ  d k  r% t j j |  d ƒ S|  S(   Ng      à?i    (   R9   R   R   R:   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyR"   ‡   R#   (   i   i   i   (   i   i   i   (   R   R9   R3   R   (   R8   RA   t   fnRB   RC   RD   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_mixed_random‚   s    	c          C   s­   t  j j d	 d d
 ƒ}  d |  |  d k  <t  j j |  d ƒ }  t  j d d d ƒ} t  j | |  g d d ƒ} | j d k s‚ t ‚ | j ƒ  } t	 | t
 j j ƒ s© t ‚ d  S(   Ni
   R   i   i    gš™™™™™Ù?i   R/   i   (   i
   i
   (   i   i   (   i
   i   (   i   i   (   i
   i   (   R   R9   R   R:   t   zerosR@   R   R   R   R   R   R   (   R   R   t   zR=   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_mixed_output_type   s    c    	   	   C   s  t  j d d d d d g d ƒ j d ƒ }  t  j d d d d d g d ƒ } t j |  d d	 ƒ} t j | d d
 ƒ} t  j j |  | ƒ } xE t | |  g | | g ƒ D]( \ } } t t j j | | ƒ | ƒ q¨ Wt t j j | d ƒ t  j j |  d ƒ ƒ t t j j	 | d ƒ t  j j	 |  d ƒ ƒ t t j j
 | d ƒ t  j j
 |  d ƒ ƒ t t j j | d ƒ t  j j |  d ƒ ƒ t t j j | d ƒ t  j j |  d ƒ ƒ t t j j | d ƒ t  j j |  d ƒ ƒ t t j j t | ƒ t  j j t |  ƒ ƒ t t j j | d k | ƒ t  j j |  d k |  ƒ ƒ t j t ƒ . t j j | d k d  d  … d f | ƒ Wd  QXt t j j | d d ƒ t  j j |  d d ƒ ƒ t t j j | d d ƒ t  j j |  d d ƒ ƒ t t j j | d ƒ t  j j |  d ƒ ƒ t j t ƒ  t j j | | ƒ Wd  QXt j t ƒ  t j j | | ƒ Wd  QX|  j d ƒ } t  j | d <| d <t j | d d	 ƒ} t t j j | ƒ t  j j | ƒ ƒ t  j j | d ƒ } t j j | d ƒ } t t j j | d d ƒt  j j | d d ƒƒ d  S(   Niþÿÿÿiÿÿÿÿi    i   i   i   i
   R   i   i   t   f8i   R   (   i
   i
   (   i    i    (   i   i   (   R   t   arrayR5   R   R   R   t   masked_greaterR    R   t   masked_greater_equalt   masked_lesst   masked_less_equalR:   t   masked_not_equalR   R
   t   pytestt   raisest
   IndexErrort   masked_insidet   masked_outsidet   masked_valuest
   ValueErrorR1   t   nant   masked_invalidt   fix_invalid(	   R   R   t   dxt   dyt   solt   at   bt   myt   dmy(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_creation_functions   s@    +"( +++++++7/11+%c          C   s¾   t  j d d d d d g d ƒ j d ƒ }  t j |  d d	 ƒ} t  j j |  d ƒ } t j j | d ƒ } t t j j | ƒ t  j j | ƒ ƒ t t j j | d
 ƒ t  j j | d
 ƒ ƒ d  S(   Niþÿÿÿiÿÿÿÿi    i   i   i   i
   R   i   iûÿÿÿ(   i
   i
   (	   R   RL   R5   R   R   R   R:   R   R;   (   R   R\   t   mxt   mdx(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_filledÐ   s    +%c         C   s   |  j  ƒ  } t | ƒ t | ƒ k s* t ‚ t | d ƒ ry t j j | j | j ƒ t j	 j
 |  ƒ }  t j	 j
 | ƒ } n  t |  | d t ƒd  S(   NR   t	   equal_nan(   R   t   typeR   t   hasattrR   t   testingt   assert_equalR   R   R   R;   R   R	   (   R_   R`   t   res(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   assert_eq_maÛ   s    t   dtypet   i8RK   t	   reductionR(   t   prodt   meant   vart   stdt   minR0   t   anyt   allc      	   C   s¹  t  j j d ƒ j d d ƒ d j |  ƒ } t j | d d ƒ} t  j j | d ƒ } t j j | d ƒ } t	 t | ƒ } t	 t  | ƒ } t
 | | ƒ | | ƒ ƒ t
 | | d d ƒ| | d d ƒƒ t
 | | d	 t d
 d ƒ| | d	 t ƒƒ t
 | | d d d
 d ƒ| | d d ƒƒ t
 | | d d d	 t d
 d ƒ| | d d d	 t ƒƒ t
 | | d d d
 d ƒ| | d d ƒƒ t
 | | d d d	 t d
 d ƒ| | d d d	 t ƒƒ d  S(   Ni*   i   i
   R   i   i   R/   i    t   keepdimst   split_everyi   i   (   i   i   (   R   R9   t   RandomStatet   randR1   R   R   R   RM   t   getattrRm   R	   (   Rn   Rp   R   R\   Rd   Re   t   dfuncR8   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_reductionså   s     +%++t   argmint   argmaxc         C   sé   t  j j d
 ƒ } t j | d d ƒ} t  j j | d ƒ } t j j | d ƒ } t t |  ƒ } t t  |  ƒ } t | | ƒ | | ƒ ƒ t | | d ƒ | | d ƒ ƒ t | | d ƒ | | d ƒ ƒ t | | d	 ƒ | | d	 ƒ ƒ d  S(   Ni
   R   i   i   i   gš™™™™™Ù?i    i   i   (   i
   i
   i
   (   i   i   i   (   R   R9   R   R   R   RM   R|   Rm   (   Rp   R   R\   Rd   t   dmxR}   R8   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_arg_reductionsý   s    c          C   sÈ   t  j j d ƒ j d d d ƒ }  t j |  d d ƒ} t  j j |  d	 ƒ } t j j | d	 ƒ } xa d d
 d g D]P } t | j	 d | ƒ | j	 d | ƒ ƒ t | j
 d | ƒ | j
 d | ƒ ƒ qp Wd  S(   Ni    i   i   i   R   i   i   i   gš™™™™™Ù?i   i   R/   (   i   i   i   (   R   R9   Rz   R{   R   R   R   RM   Rm   t   cumsumt   cumprod(   R   R\   Rd   R   R/   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_cumulative  s    !%c          C   sé   t  j j d ƒ }  t j |  d d ƒ} t  j j |  d ƒ } t j j | d ƒ } t t j j | ƒ t  j j | ƒ ƒ t t j j | ƒ t  j j |  ƒ ƒ t t j j | ƒ t  j j | ƒ ƒ t t j j | ƒ t  j j |  ƒ ƒ d  S(   Ni
   R   i   i   gš™™™™™Ù?(   i
   i
   (   i   i   (	   R   R9   R   R   R   RM   R   t   getmaskarrayt   getdata(   R   R\   Rd   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_accessors  s    %%%c          C   s  t  j j d ƒ j d ƒ }  t j |  d d ƒ} t j t  j d ƒ d d ƒ} d d d | f g } x)t |  | g | ƒ D]\ } \ } } t t j	 j
 | d | ƒt  j	 j
 |  d | ƒƒ t t j	 j
 | d	 | d
 k d | ƒt  j	 j
 |  d	 |  d
 k d | ƒƒ t t j	 j
 | d	 | d
 k d | ƒt  j	 j
 |  d	 |  d
 k d | ƒƒ t t j	 j
 | d | d d ƒt  j	 j
 |  d | d d ƒƒ qy Wt j t ƒ  t j	 j
 | d | ƒWd  QXt j t  j	 j ƒ 1 t j	 j
 | d	 | d  d … d  d … f ƒWd  QXd  S(   Ni
   t   f4R   i   i   i   g      à?R   R   gš™™™™™Ù?Rn   RK   (   i
   i
   (   i   i   (    (   NN(   g      à?g      à?(   R   R9   R1   R   R   RL   R%   R    R   R   R   RR   RS   RX   t	   MaskError(   R   R\   t   f1t   fill_valuest   datat   dft   f(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_masked_array$  s"    ($%$%#c          C   s  t  j j d d d ƒ }  t j |  d d	 ƒ} t  j j |  d ƒ } t j j | d ƒ } t j j | d ƒ t  j j | d ƒ t | | ƒ t j j | d ƒ t  j j |  d ƒ t | |  ƒ t	 j
 t ƒ  t j j | d ƒ Wd  QXt	 j
 t ƒ  t j j | | ƒ Wd  QXd  S(
   Ni    i
   R   i   i   iöÿÿÿg@Œµx¯D(   i
   i
   (   i   i   (   R   R9   t   randintR   R   R   RM   t   set_fill_valueRm   RR   RS   t	   TypeErrorRX   (   R   R\   Rd   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   test_set_fill_value;  s    c          C   sò   t  j t t g t t g t t g g ƒ }  t  j d ƒ j d ƒ } t  j j | d |  ƒ} t j j d | d |  d d ƒ } t  j d d g ƒ } t j	 | d d ƒ} t  j j
 | d	 | d
 d ƒ} t j j
 | d	 | d
 d ƒ} t | | ƒ d  S(   Ni   i   i   R   R   R   g      Ð?g      è?t   weightsR/   i   (   i   i   (   R   RL   R	   R
   R*   R5   R   R   R   R   t   averageR   (   R   R   R_   t   d_aR•   t	   d_weightst   np_avgt   da_avg(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt&   test_average_weights_with_masked_arrayP  s    	!c          C   sµ   t  j t t g t t g t t g g ƒ }  t  j d ƒ j d ƒ } t  j j | d |  ƒ} t j | d d ƒ} | | } | | } t	 | | ƒ t
 | j ƒ  t  j j ƒ s± t ‚ d  S(   Ni   i   i   R   R   (   i   i   (   i   i   (   R   RL   R	   R
   R*   R5   R   R   R   R   R   R   R   R   (   R   R   t   maskedR\   Rl   R^   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt!   test_arithmetic_results_in_maskeda  s    	

(   Ro   RK   (&   R9   t	   itertoolsR    t   numpyR   RR   t
   dask.arrayRL   R   t	   dask.baseR   t   dask.array.utilsR   R   R   t   importorskipR   R   R!   t	   functionst   markt   parametrizeR>   R?   RE   RG   RJ   Rc   Rf   Rm   R~   R‚   R…   Rˆ   R   R”   R›   R   (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_masked.pyt   <module>   sp   						3		
!$					