ó
¦–Õ\c           @   sç  d  d l  Z  d  d l m Z d  d l Z d  d l Z d  d l Z d  d l j Z	 d  d l
 m Z d  d l m Z m Z m Z m Z m Z d  d l m Z d  d l m Z m Z d \ Z Z Z Z Z Z Z g  e d ƒ D] Z d	 e ^ qÕ \
 Z  Z! Z" Z# Z$ Z% Z& Z' Z( Z) d
 \ Z Z* Z+ e j, j- d e d i e e  f e 6e d f g f g e d i e e  f e 6e d f g f g e d i e e  f e 6e d f g f e d i e e  f e 6e d f g f e d i e e  e! e" f e 6e d f e d f e d f g f g e d i e e  f e 6e e  f e 6e e  e e f e 6e d f g f g e d i e e  f e 6e d f g f e d i e e  f e 6e d f g f g e d i e e  f e 6e e f e 6e d f g f g e d i e. e  f e 6e d f g f e d i e e  f e 6e d f g f g e d i e. e  f e 6e e f e 6e d f g f g e d i e e  f e 6e d f g f e d i e e  f e 6e d f g f e d i e e  e! f e 6e d f e d f g f g e d i e e e f e 6e e  f e 6e e! f e 6e d f e d f g f g e d i e j/ e  f e 6e d f g f e d i e e  e! f e 6e d f e d f g f g e d i e e  e f e 6e j/ e! f e 6e d f e d f g f g e d i e e  e! f e 6e d f e d f g f e d i e e  f e 6e d f g f g e d i e e f e 6e e  e! f e 6e d f e d f g f g e d i e j/ e  f e 6e d f g f e d i e j0 e  e! f e 6e d f e d f g f g e d i e j0 e e  f e 6e j/ e! f e 6e d f e d f g f g e d i e e  e! f e 6e d f e d f g f e d i e e  e! f e 6e d f e d f g f e d i e e  e! f e 6e d f e d f g f g e d i e e e f e 6e e" e# f e 6e e  e! f e 6e e f e e f e e f e e f g f g e d i e e  e! f e 6e d f e d f g f e d i e e  e! f e 6e d f e d f g f e d i e e  e! f e 6e d f e d f g f g e d i e e e f e 6e e  e" f e 6e e  e! f e 6e d f e d f e d f g f g e d i e. e  f e 6e d f g f e d i e e  f e 6e d f g f g e d i e e f e 6e. e  f e 6e d f g f g e d i e e  f e 6e d f g f e d i e e  e! e" f e 6e d f e d f e d f g f g e d i e e  e! e f e 6e e! f e 6e d f e d f g f g e d i e e  e! f e 6e d f dB g f g e d i e e  e! f e 6e d f dC g f g e d i e e  e! f e 6e d f dD g f e d i e e  e! f e 6e d f dE g f g e d i e e! e" f e 6e e e  f e 6dF e d f dG g f g g ƒ d „  ƒ Z2 d „  Z3 d „  Z4 d „  Z5 d „  Z6 d „  Z7 d „  Z8 e j, j- d d  d! d" d# d$ g ƒ d% „  ƒ Z9 e j, j- d d! d" d# d$ d  g ƒ d& „  ƒ Z: d' „  Z; d( „  Z< d) „  Z= e j, j- d* e> e? g ƒ d+ „  ƒ Z@ e j, j- d* e> e? g ƒ d, „  ƒ ZA e j, j- d* e> e? g ƒ d- „  ƒ ZB d. „  ZC d/ „  ZD d0 „  ZE d1 „  ZF d2 „  ZG d3 „  ZH d4 „  ZI d5 „  ZJ d6 „  ZK e j, j- d7 dH e  jL d: d; d< g ƒ d8 d9 ƒ g ƒ d= „  ƒ ZM d> „  ZN d? „  ZO d@ „  ZP dA „  ZQ d S(I   iÿÿÿÿN(   t   add(   t   HighLevelGraph(   t	   Blockwiset   rewrite_blockwiset   optimize_blockwiset
   index_subst	   blockwise(   t	   assert_eq(   t   inct   dect   abcdefgi
   s   _%dt   ijks   inputs,expectedt   it   jt   ijt   kt   kAt   jit   ikt   kjt   kit   iAi{   iÈ  c         C   s¶   g  |  D]& } t  d d „  | d Dƒ | Œ ^ q }  t |  ƒ } | j d j | j ƒ | j g  | j D]3 \ } } | | d  k	 rŽ d j | ƒ n | f ^ qd f } | | k s² t ‚ d  S(   Nt	   numblocksc         S   s5   i  |  ]+ \ } } | d k	 r d t | ƒ | “ q S(   i   N(   i   (   t   Nonet   len(   t   .0R   t   v(    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pys
   <dictcomp>b   s   	 iÿÿÿÿt    (	   R   R   t   outputt   joint   output_indicest   dskt   indicesR   t   AssertionError(   t   inputst   expectedt   inpt   resultt   namet   indt   result2(    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_rewrite   s    O0Cc           C   s9   t  t d ƒ i d d 6d d 6ƒ t d ƒ k s5 t ‚ d  S(   NR   R   R   R   (   R   t   tupleR!   (    (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_index_subsm   s    c          C   sœ   t  j d d d ƒ}  |  d d d d } t  j j | j ƒ } t | t ƒ sU t ‚ t g  | j	 j
 ƒ  D] } t | t ƒ rh | ^ qh ƒ d k s˜ t ‚ d  S(	   Ni
   t   chunksi   i   i   i   i   (   i   (   t   dat   onest   optimizationR   t   daskt
   isinstanceR   R!   R   t   dictst   valuesR   (   t   xt   yR   t   layer(    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_optimize_blockwiseq   s
    c          C   sÈ   t  j d d d ƒ}  |  d d d } | d } | d } | | } | d d d } t  j j | j ƒ } t | t ƒ s t ‚ t g  | j	 j
 ƒ  D] } t | t ƒ r” | ^ q” ƒ d k sÄ t ‚ d  S(   Ni
   R,   i   i   i   i   (   i   (   R-   R.   R/   R   R0   R1   R   R!   R   R2   R3   R   (   R4   R5   t   at   bt   ct   dR   R6   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_diamond_fusion}   s    


c    	      C   sÓ  t  j d d d
 ƒ}  |  d d d } | j ƒ  } | d d d } t | j j | j j ƒ } t j | ƒ \ } t | j j | j j ƒ } | | k s§ t	 d ƒ ‚ t
 | j d	 t t j j | j ƒ  ƒ ƒ ƒ} t | t ƒ sé t	 ‚ t g  | j j ƒ  D] } t | t ƒ rü | ^ qü ƒ d k s,t	 ‚ t
 t j | j | j ƒ d	 t t j j | j ƒ  | j ƒ  g ƒ ƒ ƒ} t | t ƒ s‰t	 ‚ t g  | j j j ƒ  D] } t | t ƒ rŸ| ^ qŸƒ d k sÏt	 ‚ d  S(   Ni
   R,   i   i   i   i   i   s   z_top mutatedt   keys(   i   (   R-   R.   t   sumR*   R0   R2   R&   R    t   optimizeR!   R   t   listt   coret   flattent   __dask_keys__R1   R   R   R3   R   t   merge(	   R4   R5   t   wt   zt   z_top_beforet   zzt   z_top_afterR   R6   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt#   test_blockwise_non_blockwise_output‹   s    -C-c          C   sn   t  j d d d ƒ}  |  d  d  … d  f |  d  d  d  … f } | j j | j } t | ƒ d k sj t ‚ d  S(   Ni
   R,   i   i   (   i   (   R-   R.   R   R0   R2   R&   R   R!   (   R4   R5   R;   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_top_len    s    *c          C   sv   t  j d d d ƒd d d }  |  j ƒ  } |  d d d } | j ƒ  } |  d d } t j |  | | | | ƒ d  S(	   Ni
   R,   i   i   i   i   i   (   i   (   R-   R.   R>   R0   t   compute(   R4   R8   R5   R9   RF   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_inner_compute¨   s    !R&   t   _t   _0t   _1t   .s   .0c      	   C   sr   t  j d d d g d t ƒ} t j | d d ƒ} t j t d | d |  d  d t ƒ} | |  } t | | ƒ d  S(   NR8   t   bbt   ccct   dtypeR,   i   R   (	   t   npt   arrayt   objectR-   t
   from_arrayR   R    R   R   (   R&   R4   R;   R%   R#   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_common_token_names_args²   s
    $
c      	   C   su   t  j d d d g d t ƒ} t j | d d ƒ} t j d „  d | d d	 |  d t ƒ} | |  } t | | ƒ d  S(
   NR8   RR   RS   RT   R,   i   c         S   s   |  | S(   N(    (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   <lambda>Â   R   R   R5   (   RU   RV   RW   R-   RX   R   R   (   R&   R4   R;   R%   R#   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_common_token_names_kwargs½   s
    '
c          C   sR   t  j d d d ƒ}  t  j t d |  d d |  j ƒ} | j j d ƒ sN t ‚ d  S(   Ni   R,   i   R   RT   R    (   i   (   R-   R.   R   R    RT   R&   t
   startswithR!   (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_namesÈ   s    !c          C   s‘  d „  }  t  j d d d ƒ} t  j |  d | d d i d d	 6d
 t d | j ƒ} | j d d f k sm t ‚ t | t j d ƒ ƒ d „  }  t  j d d d ƒ} t  j |  d | d d i d d	 6d
 t d | j ƒ} | j d d f k sð t ‚ t | t j d ƒ ƒ d „  }  t  j d d d ƒ} t  j |  d | d d i d d	 6d
 t d | j ƒ} | j d d f k sst ‚ t | t j d ƒ d ƒ d  S(   Nc         S   s!   |  d  d  … d  f t j d ƒ S(   Ni   i   (   i   i   (   R   RU   R.   (   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   fÏ   s    i   R,   i   t   aqR8   t   new_axesi   t   qt   concatenateRT   i   c         S   s!   |  d  d  d  … f t j d ƒ S(   Ni   i   (   i   i   (   R   RU   R.   (   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   Ö   s    t   qac         S   s3   |  j  d d ƒ } | d  d  … d  f t j d ƒ S(   Nt   axisi   i   (   i   i   (   R>   R   RU   R.   (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   Ý   s    i   i   t   ab(   i   i   i   (   i   (   i   i   (   i   (   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   (   i   i   (	   R-   R.   R   t   TrueRT   R,   R!   R   RU   (   R^   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_new_axesÎ   s    	4	4	4c          C   sc   t  j d d d ƒ}  d „  } t  j | d |  d d |  j d	 t d
 i d d 6ƒ} t | | ƒ d  S(   Ni   R,   i   c         S   s   t  j |  |  g d d ƒS(   NRd   iÿÿÿÿ(   RU   t   stack(   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   funcê   s    R4   R5   t   signRT   Rb   R`   (   i   i   (   i   i   (   R4   R5   Rj   (   R4   R5   (   R-   R.   R   RT   Rf   R   (   R4   Ri   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_new_axes_2ç   s    			Rb   c         C   s¾   d „  } t  j d d d ƒ} t  j | d | d d i d d	 6d
 |  d | j ƒ} t  j | d | d d i d d	 6d
 |  d | j ƒ} | j d d d f k s¤ t ‚ t | t j d ƒ ƒ d  S(   Nc         S   s   |  d t j d ƒ S(   N.i   i   (   .N(   i   i   (   R   RU   R.   (   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   û   s    i   R,   i   R_   R8   R`   i   Ra   Rb   RT   t   abqRe   i   (   i   i   i   (   i   (   i   (   i   i   i   (   R-   R.   R   RT   R,   R!   R   RU   (   Rb   R^   R4   R5   RF   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_stacked_new_axesù   s    	44c         C   s  d „  } t  j d d d ƒ} t  j | d | d d i d d	 6d
 |  d | j ƒ} t  j | d | d d i d d	 6d
 |  d | j ƒ} | j d d d f k s¤ t ‚ t | t j d ƒ ƒ t  j d „  d | d d | j d
 t ƒ} | j d k sù t ‚ t | t j d ƒ ƒ d  S(   Nc         S   sN   t  |  t ƒ r! t j |  ƒ }  n  |  d t j d ƒ t d  ƒ f d |  j S(   N.i   (   N.(   N(   R1   R@   RU   Rb   R   R.   t   slicet   ndim(   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^     s    i   R,   i   Rc   R8   R`   i   Ra   Rb   RT   t   qabRe   i   c         S   s   |  d  d  … d d f S(   Ni    (    (   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ     R   t   abc(   i   (   i   (   i   i   i   (   i   i   i   (   i   (   (   i   (   i   (	   R-   R.   R   RT   R,   R!   R   RU   Rf   (   Rb   R^   R4   R5   RF   RE   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt%   test_blockwise_stacked_new_axes_front  s    	44*c         C   sÚ   d „  } t  j d d d ƒ} t  j d d d ƒ} t  j | d | d d i d d	 6d
 |  d | j ƒ} t  j | d | d d i d d	 6d
 |  d | j ƒ} | | } | j d d f k sÀ t ‚ t | t j d ƒ ƒ d  S(   Nc         S   s   |  d t j d ƒ S(   N.i   i   (   .N(   i   i   (   R   RU   R.   (   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^     s    i   R,   i   R_   R8   R`   i   Ra   Rb   RT   i   (   i   i   i   (   i   (   i   i   (	   R-   R.   t   zerosR   RT   R,   R!   R   RU   (   Rb   R^   R4   R5   R8   R9   R:   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt(   test_blockwise_stacked_new_axes_same_dim  s    	44
c       
   C   sÀ   d „  }  t  j d d d d d d t j ƒ} t  j |  d | d	 d
 i d d 6d | j ƒ} | j d d f k sv t ‚ t | t j	 d d d d d d g d d d d d d g g t j ƒ ƒ d  S(   Nc         S   s   |  d  d  d  … f d S(   Ni   (   R   (   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   &  s    i    i   i   R,   i   RT   Rc   R8   R`   Ra   i   i   i
   (   i   i   (   i   i   (   i   i   i   (
   R-   t   arangeRU   t   int32R   RT   R,   R!   R   RV   (   R^   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_new_axes_chunked%  s
    	$.c          C   ss   d „  }  t  j |  d d i d d 6d
 d 6d t j ƒ} | j d d f k sS t ‚ t | t j d t j ƒ ƒ d  S(   Nc           S   s   t  j d t  j ƒ S(   Ni   i   (   i   i   (   RU   R.   t   float32(    (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   0  s    Re   R`   i   R8   i   R9   RT   i   (   i   i   (   i   (   i   i   (   i   i   (   R-   R   RU   Rx   R,   R!   R   R.   (   R^   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_no_args/  s    	/c       	   C   s|   d „  }  t  j |  d t j d  d i d d 6d
 d 6d t j ƒ} | j d d f k s\ t ‚ t | t j d t j ƒ ƒ d  S(   Nc         S   s   t  j d |  ƒ S(   Ni   i   (   i   i   (   RU   R.   (   RT   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   9  s    Re   R`   i   R8   i   R9   RT   i   (   i   i   (   i   (   i   i   (   i   i   (	   R-   R   RU   Rx   R   R,   R!   R   R.   (   R^   R4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_no_array_args8  s    	8c       	   C   sf   d d „ }  t  j d d d
 ƒ} t  j |  d | d d d d	 | j ƒ} t | t j d ƒ d ƒ d  S(   Ni    c         S   s   |  | S(   N(    (   R8   R9   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   B  s    i   R,   i   R   R9   i
   RT   (   i   (   R-   R.   R   RT   R   RU   (   R^   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_kwargsA  s    'c          C   sÚ  t  j d d d d f ƒ}  d d „ } t  j | d |  d d	 i d
 „  d 6d d d |  j ƒ} | j d d f k sy t ‚ t | t j d ƒ ƒ t  j | d |  d d	 i d „  d 6d d d |  j ƒ} | j d d f k sá t ‚ t | t j d ƒ ƒ t  j d d d ƒ}  t  j | d |  d d d d	 i d d 6d |  j ƒ} | j d d  f k s[t ‚ t | t j d! ƒ ƒ t  j | d |  d d d d	 i d" d 6d |  j ƒ} | j d# d$ f k sÀt ‚ t | t j d% ƒ ƒ d  S(&   Ni   R,   i   i   i   i    c         S   s   t  j |  |  g d | ƒS(   NRd   (   RU   Rb   (   R8   Rd   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   doubleM  s    R   t   adjust_chunksc         S   s   d |  S(   Ni   (    (   t   n(    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   S  R   R   Rd   RT   i   i
   c         S   s   d |  S(   Ni   (    (   R~   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   ]  R   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
   i
   (   i   i   (   i   i
   (   i
   i
   (   i
   i
   (   i   i   (   i   i
   (   R-   R.   R   RT   R,   R!   R   RU   (   R4   R|   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_chunksJ  sF    				c          C   sÔ   t  j d d d ƒ}  t j d ƒ } |  j d „  d ƒ }  |  j d „  d ƒ }  |  j d	 „  | ƒ }  |  j d
 „  d ƒ }  |  j d „  d ƒ }  |  j d „  d t j d d g d t ƒƒ }  t |  t j d ƒ ƒ d  S(   Ni
   R,   i   iè  c         S   s   |  S(   N(    (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   ~  R   g      ð?c         S   s   |  S(   N(    (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ     R   Rq   c         S   s   |  S(   N(    (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   €  R   c         S   s   |  S(   N(    (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ     R   c         S   s   |  S(   N(    (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   ‚  R   c         S   s   |  S(   N(    (   R4   R5   RF   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   ƒ  R   R8   R9   RT   (   i   (   R-   Ru   RU   t
   map_blocksRV   RW   R   (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_blockwise_numpy_argz  s    -c          C   s¥   d d  l  j }  |  j d d d ƒ} | j t j ƒ j ƒ  \ } g  | g D]! } t j | d d d t	 ƒ^ qI \ } t j
 | g ƒ } t | t j d ƒ d t ƒd  S(	   Niÿÿÿÿi
   t   npartitionsi   t   shapeRT   t   check_graph(   i
   (   t   dask.bagt   bagt   ranget   map_partitionsRU   t   asarrayt
   to_delayedR-   t   from_delayedt   intRb   R   Ru   t   False(   t   dbR9   R4   R8   RF   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_bag_array_conversion‡  s    4c          C   sU   t  j d d d ƒ}  |  d } t  j j | ƒ \ } } } | | } t | | ƒ d  S(   Ni   R,   i   (   i   i   (   i   i   (   R-   R.   t   linalgt   svdR   (   R4   R5   t   ut   sR   RF   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_svd  s
    

c       	   C   s³   t  j d d d
 ƒ}  t j d „  ƒ ƒ  } t  j t d |  d | d  d |  j ƒ} t | t	 j d ƒ d ƒ t  j d „  d |  d d	 | d |  j ƒ} t | t	 j d ƒ d ƒ d  S(   Ni
   R,   i   c           S   s   d S(   Nid   (    (    (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   š  R   R   RT   id   c         S   s   |  | S(   N(    (   R4   R5   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyRZ   Ÿ  R   R5   (   i   (
   R-   Ru   R0   t   delayedR   R    R   RT   R   RU   (   R4   R5   RF   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_args_delayed˜  s    '*t   tupi   i   t   fooR8   R9   c      	   C   sY   t  j j d	 d d
 ƒ} d „  } t  j | d | d d |  d | j ƒ} t | | ƒ d  S(   Ni   R,   i
   c         S   s   |  S(   N(    (   t   dataR4   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR^   ª  s    t   d1t   d2R4   RT   (   i   i   (   i
   i
   (   Rš   R›   (   Rš   R›   (   R-   t   randomR   RT   R   (   R—   t   AR^   t   B(    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_namedtuple£  s    		c          C   s  t  j j d d d ƒ}  t j t ƒ & } t  j t d |  d d |  j ƒWd  QXd t | j	 ƒ j
 ƒ  k sp t ‚ d t | j	 ƒ k s‹ t ‚ d	 t | j	 ƒ k s¦ t ‚ t j t ƒ & } t  j t d
 |  d d |  j ƒWd  QXd t | j	 ƒ j
 ƒ  k sþ t ‚ d t | j	 ƒ k st ‚ d  S(   Ni   R,   i
   t   jkR   RT   s   unknown dimensionR   R   t   iit   repeatedR   (   i   i   (   i
   i
   (   R-   Rœ   t   pytestt   raisest
   ValueErrorR   R   RT   t   strt   valuet   lowerR!   (   R   t   info(    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_validate_top_inputs·  s    %!%!c          C   sà   d d l  m }  d „  } t j d d d d ƒ } d } t | | d | j d d i d d 6d d „  | f Dƒ ƒ} |  ƒ  } | j | ƒ | j | j ƒ  ƒ d | j } t j	 | | | d | j
 ƒ} | j d d ƒ j ƒ  d  S(   Niÿÿÿÿ(   t	   ShareDictc         S   s   |  d S(   N.(   N.(   R   (   R   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyR˜   Ë  s    Rƒ   i
   i   i   R,   i   i   t   Dt   nsrct   ntimet   nblt   npolR`   i   R   c         S   s   i  |  ] } | j  | j “ q S(    (   R   R&   (   R   R8   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pys
   <dictcomp>Ö  s   	 RT   Rd   i    (   i
   i   i   (   i   i   i   (   R­   R®   R¯   R°   (   R®   R¯   R°   (   i   (   (   i   (   t   dask.sharedictR«   R-   R.   R   R&   t   updatet   __dask_graph__R,   t   ArrayRT   R>   RL   (   R«   R˜   R   R&   R   t	   array_dskR,   R¬   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_gh_4176È  s    			c          C   sØ   t  j d d d ƒ}  t  j t d |  d d |  j ƒ} t  j t d | d d | j ƒ} t  j t d | d d | j ƒ} t | j ƒ } t g  | j	 j
 ƒ  D] } t | t ƒ rš | ^ qš ƒ d k sÊ t ‚ | j ƒ  d  S(	   Ni
   R,   i   R   RT   R   i   (   i   (   R-   R.   R   R   RT   R>   R   R0   R   R2   R3   R1   R   R!   RL   (   R4   R5   RF   RE   R   R;   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt!   test_dont_merge_before_reductionsã  s    !!!Cc          C   s–   t  j d d d ƒ}  t j d  ƒ & t  j t d |  d d |  j ƒ} Wd  QXt  j t d |  d d |  j ƒ} t	 | | ƒ | j
 | j
 k s’ t ‚ d  S(   Ni
   R,   i   R   RT   (   i   (   R-   R.   R£   t   warnsR   t   atopR   RT   R   R   R&   R!   (   R4   R5   RF   (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   test_atop_legacyð  s    '!(   i{   N(   i{   N(   i{   N(   iÈ  N(   iÈ  N(   i{   N(   i   i   (R   t   collectionst   operatorR    R£   t   numpyRU   R0   t
   dask.arrayRV   R-   t   dask.highlevelgraphR   t   dask.blockwiseR   R   R   R   R   t   dask.array.utilsR   t   dask.utils_testR   R	   R8   R9   R:   R;   t   eR^   t   gR‡   R   RO   RP   t   _2t   _3t   _4t   _5t   _6t   _7t   _8t   _9R   R   t   markt   parametrizeR>   t	   transposet   dotR   R)   R+   R7   R<   RJ   RK   RM   RY   R[   R]   Rg   Rk   Rf   R   Rm   Rr   Rt   Rw   Ry   Rz   R{   R   R   R   R”   R–   t
   namedtupleRŸ   Rª   R¶   R·   Rº   (    (    (    s9   lib/python2.7/site-packages/dask/array/tests/test_atop.pyt   <module>   s®   (A((%%@H%(5%(5%%4N(4D1(A(7G114f114]%(5%@D..+.S						
--			$$$	
							0					0			