ó
¦–Õ\c           @` sÐ  d  d l  m Z m Z m Z d  d l Z d  d l m Z d  d l j Z	 d  d l
 m Z d  d l Z d  d l m Z d  d l m Z m Z m Z m Z m Z d „  Z d „  Z d	 „  Z 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 „  ƒ Z" d „  Z# e j j$ d d ƒ d „  ƒ Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d „  Z- d „  Z. e j j d e/ e/ f g ƒ d „  ƒ Z0 d  „  Z1 d! „  Z2 d" „  Z3 d# „  Z4 d$ „  Z5 d% „  Z6 d& „  Z7 d' „  Z8 d( „  Z9 e j j d) e e  g ƒ d* „  ƒ Z: d+ „  Z; d, „  Z< d- „  Z= e j j d. d/ d0 d g ƒ d1 „  ƒ Z? e j j d2 d  d3 g d9 d: g g ƒ d4 „  ƒ Z@ d5 „  ZA d6 „  ZB d7 „  ZC d8 „  ZD d S(;   i    (   t   absolute_importt   divisiont   print_functionN(   t   assert_equal(   t	   assert_eq(   t   Array(   t   _parse_gufunc_signaturet   _validate_normalize_axest   apply_gufunct   gufunct	   as_gufuncc        	   C` s;  t  t d ƒ d g d f ƒ t  t d ƒ d g d f ƒ t  t d ƒ d d g d f ƒ t  t d ƒ d g d f ƒ t  t d ƒ d g d d g f ƒ t  t d ƒ d d d  g d! f ƒ t j t ƒ  t d ƒ Wd  QXt j t ƒ  t d ƒ Wd  QXt j t ƒ  t d ƒ Wd  QXt j t ƒ  t d ƒ Wd  QXd  S("   Ns   (x)->()t   xs	   (x,y)->()t   ys   (x),(y)->()s   (x)->(y)s   (x)->(y),()s   (),(a,b,c),(d)->(d,e)t   at   bt   ct   dt   es
   (x)(y)->()s	   (x),(y)->s
   ((x))->(x)s	   (x)->(x),(   R   (    (   R   R   (    (   R   (   R   (    (   R   (   R   (   R   (   R   (    (    (   R   R   R   (   R   (   R   R   (   R   R   t   pytestt   raisest
   ValueError(    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test__parse_gufunc_signature   s&    c          C` s%  d „  }  t  j j d d
 d d ƒ } t j t ƒ  t |  d | d d ƒWd  QXt |  d | d d g ƒt |  d | d d g ƒt |  d | d d t ƒ  g ƒt |  d | d d t ƒ  g ƒt j t ƒ  t |  d | d d g ƒWd  QXt j t ƒ ! t |  d | d d d g ƒWd  QXd  S(   Nc         S` s   t  j |  d d ƒS(   Nt   axisiÿÿÿÿ(   t   npt   mean(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   foo%   s    t   sizei   i   t   chunkss   (i)->()t   axesi    i   (   i   i   (   i    (   i    (   i    i   (   t   dat   randomt   normalR   R   R   R   t   tuple(   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt*   test_apply_gufunc_axes_input_validation_01$   s    	c          C` sñ   t  j t ƒ ! t d g d  t d g d ƒ Wd  QXt  j t ƒ $ t d d g d  t d g d	 ƒ Wd  QXt  j t ƒ $ t d
 d g d  t d g d ƒ Wd  QXt d d g d  t d g d ƒ \ }  } |  d g k sØ t ‚ | d g k sí t ‚ d  S(   Ni   i    t   it   j(   i   i    (   R"   R#   (   R#   (   R"   R#   (   R#   (   i    (   R"   R#   (   R#   (   i   i    (   R"   R#   (   R#   (   i   i    (   i    (   R   R   R   R   t   Nonet   Falset   AssertionError(   R"   t   o(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt    test__validate_normalize_axes_019   s    "%%'c          C` s‡  t  d  d t d d g d ƒ \ }  } |  d d g k s< t ‚ | d	 g k sQ t ‚ t  d  d t d
 g d ƒ \ }  } |  d g k s‡ t ‚ | d g k sœ t ‚ t  d  d t d d g d ƒ \ }  } |  d d g k sØ t ‚ | d g k sí t ‚ t j t ƒ ! t  d  d t d d g d ƒ Wd  QXt j t ƒ ! t  d  d t d d g d ƒ Wd  QXt j t ƒ ! t  d  d t d d g d ƒ Wd  QXd  S(   Ni    R"   R#   (   R"   (   R"   (    (   i    (   i    (    (   R"   (   R"   (   i    (   i    (   R"   (   R"   (    (   i    (   i    (   i    (   i    (   R"   (   R"   (    (   R"   (   R#   (    (   R"   (   R#   (   R#   (   R   R$   R%   R&   t   TrueR   R   R   (   R"   R'   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt    test__validate_normalize_axes_02H   s    $!$""c          C` së   t  d  d t d g d ƒ \ }  } |  d g k s6 t ‚ | d g k sK t ‚ t j t ƒ  t  d  d t d	 g d
 ƒ Wd  QXt j t ƒ $ t  d d g d  t d g d ƒ Wd  QXt j t ƒ ' t  d d g d  t d d g d ƒ Wd  QXd  S(   Ni    R"   i   R#   (   R"   (    (   i    (   i    (   R"   (   R"   (   i    i   (   i    i   (   R"   R#   (   R"   R#   (   i    (   i    (   R"   (   R#   (    (   R   R$   R)   R&   R   R   R   (   R"   R'   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt    test__validate_normalize_axes_03_   s    !%c          C` s†   d „  }  t  j j d d d d ƒ } t |  d | d	 d
 | j f ƒ\ } } | j ƒ  j d k sg t ‚ | j ƒ  j d k s‚ t ‚ d  S(   Nc         S` s(   t  j |  d d ƒt  j |  d d ƒf S(   NR   iÿÿÿÿ(   R   R   t   std(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   statso   s    R   i
   i   i   R   i   s
   (i)->(),()t   output_dtypesi   (   i
   i   i   (   i   i   i   (   i
   i   (   i
   i   (   R   R   R   R   t   dtypet   computet   shapeR&   (   R-   R   R   R,   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_01n   s    	c          C` sŒ   d „  }  t  j j d d d d ƒ } t |  d | d	 d
 | j f d t ƒ\ } } | j ƒ  j d k sm t ‚ | j ƒ  j d k sˆ t ‚ d  S(   Nc         S` s(   t  j |  d d ƒt  j |  d d ƒf S(   NR   iÿÿÿÿ(   R   R   R,   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR-   y   s    R   i
   i   i   R   i   s
   (i)->(),()R.   i   t   allow_rechunk(   i
   i   i   (   i
   i   (   i
   i   (	   R   R   R   R   R/   R)   R0   R1   R&   (   R-   R   R   R,   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_01bx   s    	t	   vectorizec         C` sa   d „  } t  j j d d d d ƒ } t | d | d	 d
 d |  ƒ} | j ƒ  j d k s] t ‚ d  S(   Nc         S` s   t  j |  d d ƒS(   NR   iÿÿÿÿ(   R   R   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR-   …   s    R   i
   i   i   R   i   s   (i)->()R.   t   fR5   (   i
   i   i   (   i   i   i   (   i
   i   (   R   R   R   R   R0   R1   R&   (   R5   R-   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt&   test_apply_gufunc_output_dtypes_stringƒ   s    	c         C` s‚   d „  } t  j j d d d d ƒ } t | d | d	 d d |  ƒ\ } } | j ƒ  j d k sc t ‚ | j ƒ  j d k s~ t ‚ d  S(   Nc         S` s(   t  j |  d d ƒt  j |  d d ƒf S(   NR   iÿÿÿÿ(   R   R   R,   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR-   Ž   s    R   i
   i   i   R   i   s
   (i)->(),()R.   R6   R5   (   i
   i   i   (   i   i   i   (   R6   R6   (   i
   i   (   i
   i   (   R   R   R   R   R0   R1   R&   (   R5   R-   R   R   R,   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt3   test_apply_gufunc_output_dtypes_string_many_outputsŒ   s
    	$c          C` sG   d „  }  t  |  d d d d d d ƒ} t | t j d d d ƒƒ d  S(	   Nc         S` s   | d k s t  ‚ |  S(   Ni   (   R&   (   R   t   bar(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   —   s    s   ()->()g      ð?R.   R6   R9   i   R/   (   R   R   R   t   array(   R   t   ret(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt(   test_apply_gufunc_pass_additional_kwargs–   s    	t   reasonsE   Currently np.einsum doesn't seem to broadcast correctly for this casec          C` s|   d „  }  t  j j d d d d ƒ } t  j j d d d d ƒ } t |  d
 | | d | j ƒ} | j ƒ  j d k sx t ‚ d  S(   Nc         S` s   t  j d |  | ƒ S(   Ns   ...i,...j->...ij(   R   t   einsum(   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   outer_product    s    R   i   i   R   i   i
   i   i(   s   (i),(j)->(i,j)R.   (   i   i   (   i   i   (   i
   i   i(   (   i
   i   i(   (   i
   i   i   i(   (   R   R   R   R   R/   R0   R1   R&   (   R?   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_02ž   s
    	c          C` s:   d „  }  t  |  d d t ƒ} | j ƒ  d k s6 t ‚ d  S(   Nc           S` s   d S(   Ni   (    (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   ©   s    s   ->()R.   i   (   R   t   intR0   R&   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_scalar_output¨   s    	c          C` s¤   d „  }  t  j t j d d d g ƒ d d d d ƒ} t  j t j d d d g ƒ d d d d ƒ} t |  d	 | | d
 | j ƒ} t | t j d d d g ƒ ƒ d  S(   Nc         S` s   |  | S(   N(    (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   add°   s    i   i   i   R   t   nameR   R   s	   (),()->()R.   i   i   (   R   t
   from_arrayR   R:   R   R/   R   (   RC   R   R   t   z(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_elemwise_01¯   s
    	--c          C` s™   d „  }  t  j t j d d d g ƒ d d d d ƒ} t  j t j d d d g ƒ d d d d ƒ} t j t ƒ ! t |  d	 | | d
 | j ƒWd  QXd  S(   Nc         S` s   |  | S(   N(    (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyRC   ¹   s    i   i   i   R   RD   R   R   s	   (),()->()R.   (	   R   RE   R   R:   R   R   R   R   R/   (   RC   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_elemwise_01b¸   s
    	--c          C` sÐ   d „  }  t  j t j d d d g ƒ d d d d ƒ} t  j t j d d d g ƒ d d d d ƒ} t |  d	 | | d
 d | j f ƒ\ } } t | t j d d d g ƒ ƒ t | t j d d d g ƒ ƒ d  S(   Nc         S` s-   |  j  d d f k s t ‚ |  | |  | f S(   Ni   i   (   i   (   i   (   R1   R&   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   addmulÂ   s    i   i   i   R   RD   R   R   s   (),()->(),()R.   i   i   i	   (   R   RE   R   R:   R   R/   R   (   RI   R   R   t   z1t   z2(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_elemwise_02Á   s    	--+c       	   C` sc   d „  }  t  |  d d t d i d d 6ƒ} | j d
 k s@ t ‚ t | t j d d d g ƒ ƒ d  S(   Nc           S` s   t  j d d d g d t ƒS(   Ni   i   i   R/   (   R   R:   RA   (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   Í   s    s   ->(i_0)R.   t   output_sizesi   t   i_0i   i   (   i   (   (   i   (   R   RA   R   R&   R   R   R:   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_gufunc_vector_outputÌ   s    	"c          C` s†   d „  }  t  j t j d d d g ƒ d d d d ƒ} t |  d | d	 t ƒ} | j d k sc t ‚ t | t j d d
 d g ƒ ƒ d  S(   Nc         S` s#   |  j  d d f k s t ‚ d |  S(   Ni   i   (   i   (   i   (   R1   R&   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   Õ   s    i   i   i   R   RD   R   s   ()->()R.   i   i   (   i   i   (   (   i   i   (	   R   RE   R   R:   R   RA   R   R&   R   (   R   R   RF   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_elemwise_loopÔ   s
    	-c          C` s†   d „  }  t  j t j d d d g ƒ d d d d ƒ} t |  d | d	 t ƒ} | j d k sc t ‚ t | t j d d
 d g ƒ ƒ d  S(   Nc         S` s   |  j  d k s t ‚ d |  S(   Ni   i   (   i   (   R1   R&   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   ß   s    i   i   i   R   RD   R   s   (i)->(i)R.   i   i   (   i   (   (   i   (	   R   RE   R   R:   R   RA   R   R&   R   (   R   R   RF   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_elemwise_coreÞ   s
    	-c          C` s^   d „  }  t  |  d d t t f ƒ\ } } | j ƒ  d k sB t ‚ | j ƒ  d k sZ t ‚ d  S(   Nc           S` s   d S(   Ni   i   (   i   i   (    (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   ñ   s    s   ->(),()R.   i   i   (   R   RA   R0   R&   (   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt#   test_apply_gufunc_two_scalar_outputð   s    	!c       	   C` s‘   d „  }  t  |  d d t t f d i d d 6d d 6ƒ\ } } | j ƒ  d	 k sV t ‚ | j d d f k sq t ‚ t | t j d d
 t ƒƒ d  S(   Nc           S` s   d t  j d d t ƒf S(   Ni   i   i   R/   (   i   i   (   R   t   onest   float(    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   ù   s    s
   ->(),(i,j)R.   RM   i   R"   i   R#   i   R/   (   i   (   i   (   i   i   (	   R   RA   RT   R0   R&   R   R   R   RS   (   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt#   test_apply_gufunc_two_mixed_outputsø   s    	R.   c         ` sY   ‡  f d †  } t  j j d ƒ } | j t ƒ ‰  t | d | d |  ƒ} t ˆ  | ƒ d  S(   Nc         ` s   ˆ  S(   N(    (   R   (   R   (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR     s    i
   s   ()->()R.   (   R   R   t   randnt   astypeRA   R   R   (   R.   R   R   t   dy(    (   R   s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_output_dtypes  s
    c          C` s~   d „  }  t  j d
 d d d t ƒ} t  j d d d d t ƒ} t |  d | | d	 t ƒ} t | d t j d d t ƒƒ d  S(   Nc         S` s   t  j d |  | ƒ S(   Ns   ...ij,...jk->ik(   R   R>   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR     s    i   i   R   id   R/   i   s   (i,j),(j,k)->(i,k)R.   (   i   i   (   i   i   (   i   i   (   R   RS   RA   R   R   R   (   R   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_gufunc_two_inputs  s
    	c          C` sx   d „  }  t  j d
 d t ƒ} t j d d d d t ƒ} t |  d | | d	 t ƒ} t | d t  j d d t ƒƒ d  S(   Nc         S` s   |  | S(   N(    (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR     s    i   i   R/   i   R   i   s	   (),()->()R.   (   i   i   (   i   i   (   i   i   (   i   i   (   R   RS   RA   R   R   R   (   R   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_gufunc_mixed_inputs  s
    	c          C` s”   t  j j d d d d ƒ }  d „  } t | d d d	 d
 d t d t d t ƒ} | |  ƒ } | j ƒ  } t | t	 ƒ s{ t
 ‚ | j d k s t
 ‚ d  S(   NR   i
   i   R   i   c         S` s   t  j |  d d ƒS(   NR   iÿÿÿÿ(   R   R   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   #  s    t	   signatures   (i)->()R   iÿÿÿÿt   keepdimsR.   R5   (   i
   i   (   i   i   (   i
   (   R   R   R   R	   R%   RT   R)   R0   t
   isinstanceR   R&   R1   (   R   R   t   gufooR   t   valy(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_gufunc   s    	*c       
   C` sŽ   t  j j d d d d ƒ }  t d d d d	 t d
 t d t ƒd „  ƒ } | |  ƒ } | j ƒ  } t | t	 ƒ su t
 ‚ | j d k sŠ t
 ‚ d  S(   NR   i
   i   R   i   s   (i)->()R   iÿÿÿÿR]   R.   R5   c         S` s   t  j |  d d ƒS(   NR   iÿÿÿÿ(   R   R   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   0  s    (   i
   i   (   i   i   (   i
   (   R   R   R   R
   R%   RT   R)   R0   R^   R   R&   R1   (   R   R   R   R`   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_as_gufunc-  s    -c       	   C` sÅ   d „  }  t  j j d d d d ƒ } t  j j d d d d ƒ } t |  d
 | | d d	 t f d t ƒ\ } } } | j ƒ  j d k s‹ t ‚ | j ƒ  j d k s¦ t ‚ | j ƒ  j d k sÁ t ‚ d  S(   Nc         S` s_   t  |  j ƒ d k s t ‚ t  | j ƒ d k s6 t ‚ t j |  | ƒ \ }  } |  | |  | f S(   Ni   i   (   t   lenR1   R&   R   t   broadcast_arrays(   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   ;  s    R   i
   i   R   i   i   i   i   s   (i),(i)->(i),(i),(i)R.   R5   (   i
   i   (   i   i   (   i   i   i   (   i   i   i   (   i   i
   i   (   i   i
   i   (   i   i
   i   (	   R   R   R   R   RT   R%   R0   R1   R&   (   R   R   R   R   R   RF   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt'   test_apply_gufunc_broadcasting_loopdims:  s    	1c          C` s•   d „  }  t  j j d d d d ƒ } t  j j d d d d ƒ } t j t ƒ & } t |  d | | d t d	 t ƒWd  QXd
 t	 | j
 ƒ k s‘ t ‚ d  S(   Nc         S` s   |  | S(   N(    (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   L  s    R   i   R   i   i   s	   (),()->()R.   R3   s   different lengths in arrays(   i   (   i   (   i   (   i   (   R   R   R   R   R   R   R   RT   R)   t   strt   valueR&   (   R   R   R   t   excinfo(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt%   test_apply_gufunc_check_same_dimsizesK  s    	%c          C` sz   d „  }  t  j j d d
 d d ƒ } t j t ƒ & } t  j |  d | d t d t ƒWd  QXd	 t	 | j
 ƒ k sv t ‚ d  S(   Nc         S` s   t  j |  d d ƒS(   NR   iÿÿÿÿ(   R   t   sum(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   X  s    R   i   R   i   s   (i)->()R.   R3   s   consists of multiple chunks(   i   (   R   R   R   R   R   R   R   RT   R%   Rf   Rg   R&   (   R   R   Rh   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt)   test_apply_gufunc_check_coredim_chunksizeW  s
    	%c          C` s˜   d „  }  t  j j d d d d ƒ } t  j j d d d d ƒ } t j t ƒ ) } t  j |  d | | d t d	 t ƒWd  QXd
 t	 | j
 ƒ k s” t ‚ d  S(   Nc         S` s   |  | S(   N(    (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   a  s    R   i   R   i   i   s	   (),()->()R.   R3   s    with different chunksize present(   i   (   i   i   i   i   (   (   i   i   i   i   (   i   (   i   i   i   (   (   i   i   i   (   R   R   R   R   R   R   R   RT   R%   Rf   Rg   R&   (   R   R   R   Rh   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt/   test_apply_gufunc_check_inhomogeneous_chunksize`  s    	(c       
   C` sà  t  j d ƒ j d ƒ }  t  j d ƒ } t j |  d d ƒ} t j | d d ƒ} d „  } t | d | | d ƒ } | | | d ƒ } t | | ƒ t | d | | d d d	 ƒ} | | | d d d	 ƒ} t | | ƒ t | d | | d d d	 d
 d	 ƒ} | | | d d d	 ƒ} t | | ƒ d „  } t j t	 ƒ  } t | d | ƒ Wd  QXt
 | j ƒ } | j d ƒ srt ‚ d | k s„t ‚ d | k s–t ‚ d „  } t | d | | ƒ \ }	 }
 t |	 | | ƒ t |
 | | ƒ d  S(   Ni2   i   i
   R   c         _` s)   | j  d d ƒ } |  t | ƒ j | ƒ S(   Nt   castt   i8(   t   popRj   RW   (   R   t   argst   kwargsRm   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   r  s    s   (),(),()->()i   Rm   t   f8R.   c         S` s   t  d ƒ ‚ d  S(   Nt   Woops(   t   RuntimeError(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR   ‚  s    s   ()->()s   `dtype` inference faileds#   Please specify the dtype explicitlyRt   c         S` s   |  | |  | f S(   N(    (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR     s    s   (),()->(),()(   i   i
   (   R   t   aranget   reshapeR   RE   R   R   R   R   R   Rf   Rg   t
   startswithR&   (   R   R   t   dxRX   R   t   dzRF   R   t   msgt   z0RJ   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_infer_dtypel  s2    	$		R]   c      
   C` sƒ   d „  } t  j j d d ƒ } t j | d d ƒ} t  j | d d d |  ƒ} t | d	 | d d d |  d
 t ƒ} t | | ƒ d  S(   Nc         S` s   t  j |  d d ƒS(   NR   iÿÿÿÿ(   R   t   median(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   mymedian˜  s    i
   i   R   i   R   i    R]   s   (i)->()R3   (	   R   R   RV   R   RE   R}   R   R)   R   (   R]   R~   R   t   da_t   mt   dm(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_axis_01–  s    	$c          C` sz   d „  }  t  j j d d ƒ } t j | d d ƒ} t  j j | d d ƒ} t |  d | d d d	 t ƒ} t | | ƒ d  S(
   Nc         S` s   t  j j |  d d ƒS(   NR   iÿÿÿÿ(   R   t   fft(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   myfft¤  s    i
   i   R   i   R   i    s   (i)->(i)R3   (	   R   R   RV   R   RE   Rƒ   R   R)   R   (   R„   R   R   R€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_axis_02£  s    	c          C` s}   d d d „ }  t  j j d d d ƒ } t j | d d ƒ} |  | d	 d
 ƒ} t |  d | d	 d
 d t ƒ} t | | ƒ d  S(   Ni
   iÿÿÿÿc         S` sK   t  j j |  d | ƒ} d | | | +t  j j | d | ƒ} t  j | ƒ S(   NR   i    (   R   Rƒ   t   ifftt   real(   R   t   cnR   R   t   nx(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   myfilter°  s    i   i   i   R   i   R   i   s   (i)->(i)R3   (   R   R   RV   R   RE   R   R)   R   (   RŠ   R   R   R€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_axis_02b¯  s    c       
   C` s‡   d „  }  t  j j d d d ƒ } t j | d d ƒ} t  j | d d ƒ} t |  d	 | d d d
 i d d 6d t ƒ} t | | ƒ d  S(   Nc         S` s   t  j |  d d ƒS(   NR   iÿÿÿÿ(   R   t   diff(   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   mydiff¿  s    i   i   i   R   i   R   i   s   (i)->(i)RM   i   R"   R3   (	   R   R   RV   R   RE   RŒ   R   R)   R   (   R   R   R   R€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_axis_03¾  s    	+R   iþÿÿÿiÿÿÿÿc      
   C` s   d „  } t  j j d d ƒ } t j | d d ƒ} t  j | d |  sK d n |  d t ƒ} t | d	 | d |  d t d
 t ƒ} t | | ƒ d  S(   Nc         S` s   t  j |  d d ƒS(   NR   iÿÿÿÿ(   R   R}   (   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR~   Ì  s    i
   i   R   i   R   iÿÿÿÿR]   s   (i)->()R3   (	   R   R   RV   R   RE   R}   R)   R   R   (   R   R~   R   R   R€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_axis_keepdimsÊ  s    	'$R   i   c      	   C` s·   d „  } t  j j d d ƒ } t  j j d d ƒ } t j | d d ƒ} t j | d d ƒ} t  j | d d ƒt  j | d d	 ƒ} t | d
 | | d |  d t ƒ} t	 | | ƒ d  S(   Nc         S` s&   t  j |  d d ƒt  j | d d ƒS(   NR   iÿÿÿÿ(   R   R,   R   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   mystatsÙ  s    i
   i   i   R   i   R   i    i   s   (i),(j)->()R   R3   (
   R   R   RV   R   RE   R,   R   R   R)   R   (   R   R   R   R   R   t   db_R€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_axes_01×  s    	(!c       
   C` s³   d „  }  t  j j d d d ƒ } t  j j d d d ƒ } t j | d d ƒ} t j | d d ƒ} t  j d | | ƒ } t |  d	 | | d
 d d d g d t ƒ} t | | ƒ d  S(   Nc         S` s   t  j d |  | ƒ S(   Ns   ...ij,...jk->...ik(   R   R>   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   matmulç  s    i   i   i   i   i   R   s   jiu,juk->uiks   (i,j),(j,k)->(i,k)R   i    iÿÿÿÿiþÿÿÿR3   (   i   i    (   i    iÿÿÿÿ(   iþÿÿÿiÿÿÿÿ(	   R   R   RV   R   RE   R>   R   R)   R   (   R“   R   R   R   t   dbR€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_axes_02æ  s    	*c          C` sy   t  j j d d d d ƒ }  t  j j d d d d ƒ } d	 „  } t | d
 |  | d t ƒ} | j ƒ  j d k su t ‚ d  S(   NR   i   i   R   i
   i   i(   i   c         S` s   t  j d |  | ƒ S(   Ns   i,j->ij(   R   R>   (   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyR?   ù  s    s   (i),(j)->(i,j)R5   (   i   i   (   i
   i   (   i
   i   i(   (   i   i   i(   (   i
   i   i   i(   (   R   R   R   R   R)   R0   R1   R&   (   R   R   R?   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt(   test_apply_gufunc_axes_two_kept_coredimsõ  s
    	c          C` s¨   t  j d ƒ }  |  j |  j |  j |  j f g d ƒ d „  ƒ } t j j d d
 d d ƒ } t j j d d d d ƒ } | | } | | | d d	 ƒ} t | | ƒ d  S(   Nt   numbas   (n),(n)->(n)c         S` s8   x1 t  |  j d ƒ D] } |  | | | | | <q Wd  S(   Ni    (   t   rangeR1   (   R   R   t   resR"   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   g  s    R   i   i   R   R   i    (   i   i   (   i   i   (   R   t   importorskipt   guvectorizet   float64R   R   R   R   (   R—   Rš   R   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_via_numba_01   s    3
c          C` s   t  j d ƒ }  |  j |  j |  j f g d ƒ d „  ƒ } t j j d d d d ƒ } | j d	 d
 d t ƒ } | | d	 d
 d t d t ƒ} t	 | | ƒ d  S(   NR—   s   (n)->()c         S` s@   d | d <x/ t  |  j d ƒ D] } | d c |  | 7<q Wd  S(   Ng        i    (   R˜   R1   (   R   R™   R"   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   mysum  s    
R   i   i   R   i   R   i    R]   R3   (   i   i   (
   R   R›   Rœ   R   R   R   R   Rj   R)   R   (   R—   RŸ   R   R   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   test_apply_gufunc_via_numba_02  s    ,(   i    (   i   (E   t
   __future__R    R   R   R   t   numpy.testingR   t
   dask.arrayR:   R   t   dask.array.utilsR   t   numpyR   t   dask.array.coreR   t   dask.array.gufuncR   R   R   R	   R
   R   R!   R(   R*   R+   R2   R4   t   markt   parametrizeR%   R)   R7   R8   R<   t   xfailR@   RB   RG   RH   RL   RO   RP   RQ   RR   RU   RA   RY   RZ   R[   Ra   Rb   Re   Ri   Rk   Rl   R|   R‚   R…   R‹   RŽ   R$   R   R’   R•   R–   Rž   R    (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_gufunc.pyt   <module>   s^   (						
	$	$
	
								
			'												*$			'0			