ó
¦–Õ\c        
   @   sŒ  d  d l  Z  d  d l j Z d  d l Z d  d l Z d  d l j	 j
 Z d  d l m Z d  d l m Z d  d l m Z m Z d  d l m Z m Z m Z m Z m Z d  d l m Z m Z m Z m Z m Z d  d l Z d „  Z  d „  Z! d	 „  Z" d
 „  Z# d „  Z$ e j% j& d d d d d g ƒ e j% j& d d d g ƒ d „  ƒ ƒ Z' d „  Z( e j% j& d d d g ƒ d „  ƒ Z) e j% j& d d d g ƒ d „  ƒ Z* e j% j& d d d d d g ƒ e j% j& d d d g ƒ d „  ƒ ƒ Z+ d „  Z, e j% j- e j% j& d d d g ƒ e j% j& d d d d d g ƒ d „  ƒ ƒ ƒ Z. e j% j& d d d d d g ƒ e j% j& d d d g ƒ d „  ƒ ƒ Z/ e j% j& d d d d d g ƒ e j% j& d d d g ƒ d „  ƒ ƒ Z0 d „  Z1 d „  Z2 d  „  Z3 d! „  Z4 e j% j& d d d g ƒ d" „  ƒ Z5 d# „  Z6 d$ „  Z7 e j% j& d d d g ƒ d% „  ƒ Z8 d& „  Z9 d' „  Z: d( „  Z; d) „  Z< d* „  Z= d+ „  Z> d, „  Z? e j% j@ d- ƒ d. „  ƒ ZA e j% j@ d- ƒ d/ „  ƒ ZB e j% j& d0 eC eC eD f eC eD eC f eC eD eD f eD eC eD f eD eD eC f eD eD eD f g ƒ e j% j@ d- ƒ d1 „  ƒ ƒ ZE d2 „  ZF d3 „  ZG e j% j@ d- ƒ d4 „  ƒ ZH d5 „  ZI d6 „  ZJ d7 „  ZK d8 „  ZL d9 „  ZM d S(:   iÿÿÿÿN(   t   compute_as_if_collection(   t   _Frame(   t   concatt   concat_kwargs(   t   align_partitionst   merge_indexed_dataframest	   hash_joint   concat_indexed_dataframest   _maybe_align_partitions(   t	   assert_eqt   assert_divisionst	   make_metat   has_known_categoriest   clear_known_categoriesc       	      s‰  t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ}  t j |  d d d g ƒ } t  j i d d d d g d 6t d ƒ d	 6d
 d d d d g ƒ} t j | d d d g ƒ } t j j i d d  6d d ƒ } t | | ƒ \ \ } } ‰ ‰  ‡  ‡ f d †  } | | | | | ƒ ˆ  | j d f | j d f g | j d f | j d f g | j d f | j d f g | j d f | j d f g | j d f | j d f g g k s¿t	 ‚ t | | | ƒ \ \ } } } ‰ ‰  | | | | | ƒ ˆ  | j d f d  | j d f g | j d f d  | j d f g | j d f d  | j d f g | j d f d  | j d f g | j d f d  | j d f g g k sžt	 ‚ t | d ƒ t  j i d d d d d d d g d 6d d d d d d d g d 6ƒ }	 t  j i d d d d d d d g d 6d d d d d d d g d 6ƒ }
 xÐ t j |	 d ƒ t j |
 d ƒ f t j |	 d ƒ t j |
 d ƒ f t j |	 d ƒ t j |
 d ƒ f t j |	 d ƒ t j |
 d ƒ f g D]D \ } } t | | ƒ \ \ } } } } t | |	 ƒ t | |
 ƒ qÄWt  j i d d d d d d d g d 6d d d d d d d g d 6d
 t d ƒ ƒ}	 t  j i d d d d d d d g d 6d d d d d d d g d 6d
 t d ƒ ƒ}
 xÐ t j |	 d ƒ t j |
 d ƒ f t j |	 d ƒ t j |
 d ƒ f t j |	 d ƒ t j |
 d ƒ f t j |	 d ƒ t j |
 d ƒ f g D]D \ } } t | | ƒ \ \ } } } } t | |	 ƒ t | |
 ƒ q=Wd  S(!   Ni   i   i   i   i   i   t   xt   abdabdt   yt   indexi
   i   i   i(   i2   i<   t   abdaiF   iP   id   t   si    t   i8c            sÇ   t  |  t j ƒ s t ‚ t  | t j ƒ s0 t ‚ t  | t j ƒ sH t ‚ t  | t j ƒ s` t ‚ t |  | ƒ t | | ƒ ˆ d k sŒ t ‚ t  ˆ  t ƒ s¡ t ‚ t ˆ ƒ d t ˆ  ƒ k sÃ t ‚ d  S(	   Ni
   i   i(   i<   iP   id   i   (   i
   i   i(   i<   iP   id   (   t
   isinstancet   ddt	   DataFramet   AssertionErrorR	   t   listt   len(   t   at   bt   aat   bb(   t   Lt	   divisions(    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   _check!   s    i   R   R   t   ct   dt   abcdefgt   fghijkl(   R   i    (   t   pdR   R   R   t   repartitiont   coret   ScalarR   t   _nameR   t   NoneR	   t   from_pandas(   t   AR   t   BR   R   R   R   R!   t   sst   ldft   rdft   lhst   rhst   lresultt   rresultt   divt   parts(    (   R   R    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_align_partitions   s^    2,*$!-%"%"$!!1%%$!!1c       	   C   s+  t  j i d d d d d d d g d 6d d d d d d d g d	 6ƒ }  t j |  d
 d ƒ} t j |  d
 d d t ƒ} | j s‡ t ‚ t j t	 ƒ  t
 | | ƒ Wd  QXt j |  d d
 d d t ƒ} t j |  d
 d d t ƒ} | j sô t ‚ | j st ‚ t j t	 ƒ  t
 | | ƒ Wd  QXd  S(   Ni   i   i   i   i   i   i   R   R   t   npartitionst   sort(   R&   R   R   R,   t   Falset   known_divisionsR   t   pytestt   raisest
   ValueErrorR   (   t   dft   ddft   ddf2(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt'   test_align_partitions_unknown_divisionsZ   s    %"c       	   C   s  t  j i d d d d d d d g d 6d d d d d d d g d	 6ƒ }  t j |  d d
 d ƒ} t j |  d
 d ƒ} t | | g ƒ \ } } | | k sŸ t ‚ | | k s± t ‚ t j |  d d
 d d t ƒ} t j |  d
 d d t ƒ} | j sû t ‚ | j st ‚ t | | g ƒ \ } } | | k s5t ‚ | | k sGt ‚ t j |  d d
 d ƒ} t j |  d
 d ƒ} t | | g ƒ \ } } | j | j k s¥t ‚ t j |  d d
 d d t ƒ} t j |  d
 d d t ƒ} | j sït ‚ | j sÿt ‚ t	 j
 t ƒ  t | | g ƒ Wd  QXt j |  d
 d ƒ} t j |  d
 d d t ƒ} | j set ‚ t	 j
 t ƒ  t | | g ƒ Wd  QXd  S(   Ni   i   i   i   i   i   i   R   R   R9   R:   (   R&   R   R   R,   R   R   R;   R<   R    R=   R>   R?   (   R@   RA   RB   R   R   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test__maybe_align_partitionso   s:    %"c       	   C   sü  t  j i d d d d d d g d 6d d d d d d d	 g ƒ}  t j |  d d d	 g ƒ } t  j i t d
 ƒ d 6d d d d d d d g ƒ} t j | d d d d g ƒ } t | | d d ƒ} | j d | j d k sâ t ‚ | j d t | j | j ƒ k st ‚ t	 | |  j
 | ƒ ƒ t | | d d ƒ} | j d | j d k sVt ‚ | j d | j d k svt ‚ t	 | |  j
 | d d ƒƒ t | | d d ƒ} | j d d k sÀt ‚ | j d t | j | j ƒ k sét ‚ t	 | j ƒ  |  j
 | d d ƒƒ t | | d d ƒ} | j d d k s9t ‚ | j d d k sRt ‚ t	 | j ƒ  |  j
 | d d ƒƒ t t | | d d ƒj ƒ t t | | d d ƒj ƒ k s¶t ‚ t t | | d d ƒj ƒ t t | | d d ƒj ƒ k søt ‚ d  S(   Ni   i   i   i   i   i   R   R   i   t   abcdefR   i   t   howt   lefti    iÿÿÿÿt   rightt   innert   outer(   R&   R   R   R'   R   R   R    R   t   maxR	   t   joint   computet   sortedt   dask(   R-   R   R.   R   R"   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt1   test_merge_indexed_dataframe_to_indexed_dataframe   s4    % )  )""'c         C   sí   t  |  t j ƒ r' |  j d d ƒ } n |  } t  | t j ƒ rT | j d d ƒ } n | } t j | j | j ƒ t  | t j ƒ r» | j t	 | j ƒ ƒ j
 } | j t	 | j ƒ ƒ j
 } n | j ƒ  j
 } | j ƒ  j
 } t j | | ƒ d  S(   Nt	   schedulert   sync(   R   R   R   RM   t   tmt   assert_index_equalt   columnsR&   t   sort_valuesR   t   valuest   assert_numpy_array_equal(   R   R   R   R   t   avt   bv(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   list_eqÀ   s    RF   RI   RG   RH   RJ   t   shufflet   diskt   tasksc   	   
   C   s  t  j i d d d d d d g d 6d d d d d d g d 6ƒ } t j | d	 d d g ƒ } t  j i d d d d d d g d 6d d d d d d g d
 6ƒ } t j | d	 d d g ƒ } t | d | d |  ƒ } | j ƒ  } t  j | | |  d ƒ } t | | ƒ t | d | d
 d d d d | ƒ} | j d k s:t	 ‚ | j d d ƒ } t  j | | d d  d d
 ƒ } t | | ƒ t | d | d d d | ƒj t | d | d d d | ƒj k s¿t	 ‚ t | d | d d d | ƒj t | d | d d d | ƒj k st	 ‚ d  S(   Ni   i   i   i   i   i   R   R   i    t   zRJ   R9   R\   RQ   s   single-threadedRI   (   R&   R   R   R'   R   RM   t   mergeR[   R9   R   R+   R*   (	   RF   R\   R-   R   R.   R   R"   t   resultt   expected(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_hash_joinÔ   s"    AA$*c    
      C   s|  t  j i t t d ƒ ƒ d 6d d d d d d g d	 6ƒ }  t  j i t t d
 ƒ ƒ d 6d d d d g d 6ƒ } t  j i t t d d ƒ ƒ d 6d d d d g d 6ƒ } |  j | d d d d d d ƒ} | j | d d d d d d ƒ} t j |  d d ƒ} t j | d d ƒ} t j | d d ƒ} | j | d d d d d d ƒ} | j | d d d d d d ƒ}	 t | |	 ƒ d  S(    Ni   t   keyt   A0t   A1t   A2t   A3t   A4t   A5R-   i   t   B0t   B1t   B2t   B3R.   i   i   t   C0t   C1t   C2t   C3t   CRF   RI   t   lsuffixt   _lt   rsuffixt   _rR9   i   i   (   R&   R   R   t   rangeRL   R   R,   R	   (
   t   df1t   df2t   df3t   join_pdt   multi_join_pdt   ddf1RB   t   ddf3t   join_ddt   multi_join_dd(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_sequential_joinsò   s    !!!!RL   c      
   C   sÆ  t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ} t j | d d d g ƒ } t  j i d d d d d d g d 6d
 d d d d d d g ƒ} t j | d d d d g ƒ } t  j | | g d d d |  t } t | | g d |  ƒ} t | | ƒ t	 j
 ƒ  ¥ t	 j d t ƒ t t | | g d |  ƒj ƒ t t | | g d |  ƒj ƒ k stt ‚ t t | | g d d ƒj ƒ t t | | g d d ƒj ƒ k s¼t ‚ Wd  QXd  S(   Ni   i   i   i   i   i   R   RE   R   R   i
   i   i(   i2   i<   iP   i   i   t   axisi    RL   t   ignoreRI   RJ   (   R&   R   R   R   R'   R   R   R   R	   t   warningst   catch_warningst   simplefiltert   FutureWarningRN   RO   R   (   RL   R-   R   R.   R   Rb   Ra   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_indexed_concat  s    2%$*c      	   C   s}  t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ} t j | d ƒ } t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ} t j | d ƒ } t  j i d d d d d d g d 6t d ƒ d 6d
 d d d d d d g ƒ} t j | d ƒ } x{ | | | | f | | | | f g D]U \ } } }	 }
 t  j |	 |
 g d |  ƒ} t j | | g d |  ƒ} t | | ƒ qBWxÛ | | | | f | | | | f | j | j | j | j f | j | j | j | j f | j | j | j | j f | j | j | j | j f g D]I \ } } }	 }
 t  j |	 |
 g ƒ } t j | | g ƒ } t | | ƒ q,Wd  S(   Ni   i   i   i   i   i   R   RE   R   R   i   i	   i
   i   i   i   R_   RL   (	   R&   R   R   R   R,   R   R	   R   R_   (   RL   t   pdf1R~   t   pdf2RB   t   pdf3R   t   dd1t   dd2t   pd1t   pd2Rb   Ra   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat"  s4    """%1c         C   sG  t  j i d d d d d d g d 6d d d d d d g d 6ƒ } t j | d	 d d g ƒ } t  j i d d d d d d g d 6d d d d d d g d
 6ƒ } t j | d	 d d g ƒ } t t j | | d t d t d |  d | ƒt  j | | d t d t d |  ƒƒ t j | | d d d |  ƒ} t | t  j | | d d d |  ƒƒ t d „  | j	 Dƒ ƒ sit
 ‚ t t j | | d d d d
 d |  d | ƒt  j | | d d d d
 d |  ƒƒ t t j | | d d d d
 d |  d d d | ƒt  j | | d d d d
 d |  d d ƒƒ t t j | | d |  d | ƒt  j | | d |  ƒƒ t t j | | d |  d | ƒt  j | | d |  ƒƒ t t j | | d |  d | ƒt  j | | d |  ƒƒ t t j | | d |  d | ƒt  j | | d |  ƒƒ t t j | | d t d t d |  d | ƒt  j | | d t d t d |  ƒƒ t t j | | d t d t d |  d d d | ƒt  j | | d t d t d |  d d ƒƒ t t j | | d d d t d |  d | ƒt  j | | d d d t d |  ƒƒ t t j | | d d d t d |  d d d | ƒt  j | | d d d t d |  d d ƒƒ d  S(   Ni   i   i   i   i   i   R   R   i    R_   t
   left_indext   right_indexRF   R\   t   onc         s   s   |  ] } | d  k Vq d  S(   N(   R+   (   t   .0R#   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pys	   <genexpr>U  s    t   left_ont   right_ont   suffixest   1t   2(   R™   Rš   (   R™   Rš   (   R™   Rš   (   R™   Rš   (   R™   Rš   (   R™   Rš   (   R&   R   R   R'   R	   R`   t   TrueR[   t   allR    R   (   RF   R\   R-   R   R.   R   Ra   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt
   test_mergeF  sD    AA%%*%$!
7777$%$!
$%$!c       	   C   sý   t  j i d d d d d d d g d 6d d d d d d d g d	 6ƒ }  t  j i d d d d d d d g d
 6d d d d d d d g d 6ƒ } t j |  d d ƒ} t j | d d ƒ} | j | d d d d d d ƒ} t d „  | j Dƒ ƒ sù t ‚ d  S(   Ni   i   i   i   i   i   i   R   R   R"   R#   R9   R–   R—   R\   R^   c         s   s   |  ] } d  | d k Vq d S(   t   partdi    N(    (   R•   t   k(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pys	   <genexpr>ƒ  s    (   R&   R   R   R,   R`   t   anyRO   R   (   R   R   R   R   t   cc(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_merge_tasks_passes_throughx  s    %"%"!c         C   s	  t  j i d d d d d d d g d 6d d d d d d d g d	 6ƒ } t  j i d d d d d d d g d
 6d d d d d d d g d 6ƒ } t  j i d d d d d d d g d 6d d d d d d d g d	 6d t d ƒ ƒ} t  j i d d d d d d d g d
 6d d d d d d d g d 6d t d ƒ ƒ} | } t  j i d d d d g d
 6d d d d g d 6d t d ƒ ƒ} | } t  j i d d d d g d
 6d d d d g d 6d t d ƒ ƒ}	 t  j i d d d d d d d g d 6d d d d d d d g d	 6d t d ƒ ƒ}
 t  j i d d d d g d
 6d d d d g d 6d t d ƒ ƒ} t  j i d d d d d d d g d 6d d d d d d d g d	 6d t d ƒ ƒ} t  j i d d d d g d
 6d d d d g d 6d t d ƒ ƒ} t  j i d d d d d d d g d 6d d d d d d d g d	 6d t d ƒ ƒ} t  j i d d d d g d
 6d d d d g d 6d t d ƒ ƒ} d „  } x‡| | f | | f | | f | |	 f |
 | f | | f | | f g D]@\ } } x1d  d! d" g D] \ } } t j | | ƒ } t j | | ƒ } t t j | | d |  d t d t d | ƒ| | | d |  d t d t ƒƒ t t j | | d |  d t d t d | ƒ| | | d |  d t d t ƒƒ t t j | | d |  d t d t d | d t ƒ| | | d |  d t d t d t ƒƒ t t j | | d |  d t d t d | d t ƒ| | | d |  d t d t d t ƒƒ t | j | d |  d t d t d | ƒ| j | d |  d t d t ƒƒ t | j | d |  d t d t d | ƒ| j | d |  d t d t ƒƒ t t j | | d |  d d d d
 d | ƒt  j | | d |  d d d d
 ƒƒ t t j | | d |  d d	 d d d | ƒt  j | | d |  d d	 d d ƒƒ t t j | | d |  d d
 d d d | d t ƒt  j | | d |  d d
 d d d t ƒƒ t t j | | d |  d d d d	 d | d t ƒt  j | | d |  d d d d	 d t ƒƒ t t j | | d |  d d
 d d d | ƒt  j | | d |  d d
 d d ƒƒ t t j | | d |  d d d d	 d | ƒt  j | | d |  d d d d	 ƒƒ t | j | d |  d d d d
 d | ƒ| j | d |  d d d d
 ƒƒ t | j | d |  d d	 d d d | ƒ| j | d |  d d	 d d ƒƒ t | j | d |  d d
 d d d | ƒ| j | d |  d d
 d d ƒƒ t | j | d |  d d d d	 d | ƒ| j | d |  d d d d	 ƒƒ qéWqÍWd  S(#   Ni   i   i   i   i   i   i   R   R   R"   R#   R   R$   i   i	   t   abdgi
   i   i   t   lmnopqrt   abcdt   cdefghit   fghic         [   sJ   t  j |  | |  } t | ƒ d k rF | j | j j |  j j ƒ ƒ S| S(   Ni    (   R&   R`   R   t	   set_indexR   t   astypet   dtype(   RG   RH   t   kwargst   out(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   pd_merge·  s    RF   R’   R“   R\   t	   indicatorR–   R—   (   i   i   (   i   i   (   i   i   (	   R&   R   R   R   R,   R	   R`   R›   R[   (   RF   R\   t   pdf1lt   pdf1rt   pdf2lt   pdf2rt   pdf3lt   pdf3rt   pdf4lt   pdf4rt   pdf5lt   pdf5rt   pdf6lt   pdf6rt   pdf7lt   pdf7rR­   t   pdlt   pdrt   lpartt   rpartt   ddlt   ddr(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_merge_by_index_patterns†  sÎ    %"%"%%%%%	



$%$%$!
$!
$%$%!"!"!"!c         C   s¡  t  j i t d ƒ d 6d d d d d d d	 g d
 6d t d ƒ ƒ} t  j i t d ƒ d 6d d d d d d d	 g d 6d t d ƒ ƒ} | } t  j i t d ƒ d 6d d d d d d d	 g d 6d t d ƒ ƒ} | } t  j i t d ƒ d 6d d d d g d 6d t d ƒ ƒ} t  j i t d ƒ d 6d d d d d d d	 g d
 6d t d ƒ ƒ} t  j i t d ƒ d 6d d d d g d 6d t d ƒ ƒ}	 t  j i t d ƒ d 6d d d d d d d	 g d
 6d t d ƒ ƒ}
 t  j i t d ƒ d 6d d d d g d 6d t d ƒ ƒ} t  j i t d ƒ d 6d d d d d d d	 g d
 6d t d ƒ ƒ} t  j i t d ƒ d 6d d d d g d 6d t d ƒ ƒ} t  j i t d ƒ d 6d d d d d d d	 g d
 6d t d ƒ ƒ} t  j i t d ƒ d 6d d d d g d 6d t d ƒ ƒ} x‹| | f | | f | | f | |	 f |
 | f | | f | | f g D]D\ } } x5d d  d! g D]$\ } } t j | | ƒ } t j | | ƒ } t | j | d |  d | ƒ| j | d |  ƒƒ t | j | d |  d | ƒ| j | d |  ƒƒ t | j | d |  d d d d d | ƒ| j | d |  d d d d ƒƒ t | j | d |  d d d d d | ƒ| j | d |  d d d d ƒƒ qqWqUWd  S("   NR$   R   i   i   i   i   i   i   i   R   R   R"   R#   t   gfedcbaR£   t   abcabceR   R¤   R¥   R¦   t   ababt   aabbccdt   aabbR§   RF   R\   Rt   t   lRv   t   r(   i   i   (   i   i   (   i   i   (   R&   R   R   R   R,   R	   RL   (   RF   R\   R¯   R°   R±   R²   R³   R´   Rµ   R¶   R·   R¸   R¹   Rº   R»   R¼   R½   R¾   R¿   RÀ   RÁ   RÂ   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_join_by_index_patterns  sn    !"!"c         C   s9  t  j i t d ƒ d 6t d ƒ d 6d d d d d d	 d
 d d d g
 d 6d t d ƒ ƒ} t  j i t d ƒ d 6t d ƒ d 6d d d d
 d	 d d d d d g
 d 6d t d ƒ ƒ} t  j i t d ƒ d 6t d ƒ d 6d d d d d d	 d
 d d d g
 d 6d t d ƒ ƒ} t  j i t d ƒ d 6t d ƒ d 6d d d d
 d	 d d d d d g
 d 6d t d ƒ ƒ} t  j i t d ƒ d 6t d ƒ d 6d d d d d d	 d
 d d d g
 d 6d t d ƒ ƒ} t  j i t d ƒ d 6t d ƒ d 6d d d d
 d	 d d d d d g
 d 6d t d ƒ ƒ} x| | f | | f | | f g D]ó\ } }	 xäd" d# d$ g D]Ó\ }
 } t j | |
 ƒ } t j |	 | ƒ } t | j | d |  d | ƒ| j |	 d |  ƒƒ t | j | d |  d | ƒ|	 j | d |  ƒƒ t t j | | d |  d t d t d | ƒt  j | |	 d |  d t d t ƒƒ t t j | | d |  d t d t d | ƒt  j |	 | d |  d t d t ƒƒ t	 t j | | d |  d  d d! d d | ƒt  j | |	 d |  d  d d! d ƒƒ t	 t j | | d |  d  d d! d d | ƒt  j | |	 d |  d  d d! d ƒƒ t	 t j | | d |  d  d d! d d | ƒt  j |	 | d |  d  d d! d ƒƒ t	 t j | | d |  d  d d! d d | ƒt  j |	 | d |  d  d d! d ƒƒ t	 t j | | d |  d  d d g d! d d g d | ƒt  j | |	 d |  d  d d g d! d d g ƒƒ qZWq>Wd  S(%   Nt
   abcdefghijR   R   i   i   i   i   i   i   i   i   i	   i
   R"   R   R#   t   et   ft
   abcdeabcdet
   abcabcabcat
   edcbaedcbat
   aaabbbcccdt
   fghijklmnot
   aaaaaaaaaat
   aaabbbccaat
   abbbbbbbbbt
   ABCDEFGHIJRF   R\   R’   R“   R–   R—   (   i   i   (   i   i   (   i   i   (
   R&   R   R   R   R,   R	   RL   R`   R›   R[   (   RF   R\   R¯   R°   R±   R²   R³   R´   R½   R¾   R¿   RÀ   RÁ   RÂ   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_merge_by_multiple_columnso  sn    ((((((.

$%$%$%$%$c       
   C   sa  t  j i t d ƒ d d 6t d ƒ d d 6t j j d ƒ d 6ƒ }  t j |  d	 ƒ } t t j	 | ƒ t  j	 |  ƒ ƒ t t j	 | d
 d ƒt  j	 |  d
 d ƒƒ t t j	 | d d ƒt  j	 |  d d ƒƒ t t j	 | d d d g d d ƒt  j	 |  d d d g d d ƒƒ t t j	 | d
 d d d d g d d ƒt  j	 |  d
 d d d d g d d ƒƒ d  S(   NR¥   i   R-   t   XYi
   R.   i   Rs   i   t   id_varst
   value_varst   var_namet   myvart
   value_namet   myval(
   R&   R   R   t   npt   randomt   randnR   R,   R[   t   melt(   t   pdfRA   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt	   test_melt·  s    !"'c       	   C   s  t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ}  t j |  d d ƒ} t  j i d d d d g d 6t d ƒ d 6ƒ } | j | d d d d ƒ} t d „  | j Dƒ ƒ sË t ‚ t	 | j | d d d d ƒ|  j | d d d d ƒƒ d  S(   Ni   i   i   i   i   i   R   R   R   R   i
   i   i   i(   i2   i<   R9   R   R_   R”   RF   RI   c         s   s   |  ] } d  | d k Vq d S(   R\   i    N(    (   R•   RŸ   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pys	   <genexpr>Ò  s    (
   R&   R   R   R   R,   R`   Rœ   RO   R   R[   (   R   t   daR   t   dc(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt)   test_cheap_inner_merge_with_pandas_objectÊ  s    2/c       	   C   sV  t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ}  t j |  d d ƒ} t  j i d d d d g d 6t d ƒ d 6ƒ } t j | d d d t ƒ} | j | d d d d ƒ} t d „  | j Dƒ ƒ sæ t	 ‚ t
 | j ƒ t
 | j ƒ d t
 | j ƒ k st	 ‚ t | j | d d d d ƒ|  j | d d d d ƒƒ d  S(   Ni   i   i   i   i   i   R   R   R   R   i
   i   i   i(   i2   i<   R9   R   R_   R:   R”   RF   RI   c         s   s   |  ] } d  | d k Vq d S(   R\   i    N(    (   R•   RŸ   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pys	   <genexpr>á  s    (   R&   R   R   R   R,   R;   R`   Rœ   RO   R   R   R[   (   R   R   R   R   R¡   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt!   test_cheap_single_partition_mergeØ  s    2/5c       	   C   s  t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ}  t j |  d d ƒ} t  j i d d d d g d 6t d ƒ d 6ƒ } t j | d d d t ƒ} | j | d d d d ƒ} | j s× t ‚ t	 | ƒ | j | d d d d ƒ} | j st ‚ t	 | ƒ d  S(   Ni   i   i   i   i   i   R   R   R   R   i
   i   i   i(   i2   i<   R9   R   R_   R:   R”   RF   RI   (
   R&   R   R   R   R,   R;   R`   R<   R   R
   (   R   R   R   R   t   actual(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt+   test_cheap_single_partition_merge_divisionsè  s    2/
c         C   s<  t  j i t d ƒ d 6t d ƒ d 6d t d ƒ ƒ} t j | d d ƒ} t  j i d d d	 d
 g d 6t d ƒ d 6d t d
 ƒ ƒ} t j | d d ƒ} | j | d t d d d |  ƒ} | j | d t d d d |  ƒ} t | | ƒ | j | d d d t d |  ƒ} | j | d d d t d |  ƒ} t | | ƒ d  S(   Ni   R   t   ababbddaR_   R   R9   i   i   i   i   R   R’   R—   RF   R–   R“   (	   R&   R   Rx   R   R   R,   R`   R›   R	   (   RF   R   R   R   R   Rê   Rb   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt+   test_cheap_single_parition_merge_left_rightù  s    5;!!!!c       	   C   sl  t  j i d d d d d d g d 6t d ƒ d	 6d
 d d d d d d g ƒ}  t j |  d d ƒ} t  j i d d d d g d 6t d ƒ d 6ƒ } t j | d d d t ƒ} | j | d t d d d d ƒ} |  j | d t d d d d ƒ} | j sý t	 ‚ t
 | | ƒ | j | d t d d d d ƒ} | j |  d t d d d d ƒ} | j s[t	 ‚ t
 | | ƒ d  S(   Ni   i   i   i   i   i   R   R   R   R   i
   i   i   i(   i2   i<   R9   R   R_   R:   R’   R—   RF   RI   R“   R–   (   R&   R   R   R   R,   R;   R`   R›   R<   R   R	   (   R   R   R   R   Rê   Rb   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt*   test_cheap_single_partition_merge_on_index  s    2/!!!!c          C   sÛ   t  j i d d d g d 6t d ƒ d 6d d 6d	 d
 6d t d ƒ ƒ}  t  j i d d g d 6d d 6d d 6t d ƒ d 6d t d ƒ ƒ} t j |  d d ƒ} t j | | d d ƒj ƒ  } t | j ƒ d k s× t	 ‚ d  S(   Ni   i   i   R-   t   abcR.   t   fooRs   g      ð?t   DRU   t   DCBAi   i   t   Gg      @t   Ht   bart   It   abt   GHIBR9   R”   (   Rñ   Rs   R.   R-   Ró   Rô   Rö   (
   R&   R   R   R   R,   R`   RM   t   tupleRU   R   (   R2   R3   RA   t   merged(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_merge_maintains_columns!  s    
c         C   så   t  j i d d d d d g d 6d d d d d d g ƒ} t  j i d d d d d g d 6d d d d d d g ƒ} t j | d	 d d
 t ƒ} t j | d	 d ƒ} | j | d d d |  ƒ} | j | d d ƒ} t | | ƒ d  S(   Ni   i   i   i   i   R   R   R   R9   R:   RF   RI   R\   (   R&   R   R   R,   R;   RL   R	   (   R\   R   R   R   R   Ra   Rb   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt"   test_merge_index_without_divisions1  s    ::c       	   C   s   t  j i t j j d d d ƒd 6ƒ }  t  j i t j j d d d ƒd 6d t j j d d d ƒƒ} t j |  d d ƒ} t j | d d ƒ} t  j |  | d	 t d
 d ƒ} t j | | d	 t d
 d d d ƒ} t	 | | ƒ t
 | j ƒ d k  sü t ‚ d  S(   Nid   t   sizeiè  R   R   R   R9   i   R’   R—   R\   R^   iô  (   R&   R   Rà   Rá   t   randintR   R,   R`   R›   R[   R   RO   R   (   R   R   R   R   R"   R¡   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt*   test_half_indexed_dataframe_avoids_shuffle>  s    (%$c          C   s  t  j i d d d d d g d 6d d d d d d g ƒ}  t  j i d d d d d g d 6d d d d d d g ƒ} t j |  d	 d d
 t ƒ} t j | d	 d ƒ} t j t ƒ $ t j | | d d d | j	 ƒWd  QXt j t ƒ ' t j | | d | j
 d | j	 ƒWd  QXd  S(   Ni   i   i   i   i   R   R   R   R9   R:   R–   R—   (   R&   R   R   R,   R;   R=   R>   t   NotImplementedErrorR`   R   R   (   R   R   R   R   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt&   test_errors_for_merge_on_frame_columnsN  s    ::%c          C   sš   t  j d d d d g ƒ }  t j |  d d d t ƒ} t j | g d d ƒ} t | t j ƒ sf t ‚ t j | g d d ƒ} t | t j ƒ s– t ‚ d  S(	   Ni   i   i   i   R9   R:   Rƒ   i    (	   R&   t   SeriesR   R,   R;   R   R   R   R   (   R   R   R"   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat_one_series\  s    c       
   C   s  t  j d d d d g ƒ }  t  j d d d d g ƒ } t j |  d d d t ƒ} t j | d d d t ƒ} | j s| t ‚ t j t	 ƒ < t
 t  j |  | g d d ƒt j | | g d d ƒƒ Wd  QXt j | d d d t ƒ} t j t ƒ  t j | | g d d ƒWd  QXd  S(   Ni   i   i   i   R9   R:   Rƒ   (   R&   R  R   R,   R;   R<   R   R=   t   warnst   UserWarningR	   R   R>   R?   (   R   R   R   R   R¡   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat_unknown_divisionsg  s    "c          C   sÁ   t  j d d d d d d g ƒ }  t  j d d d d g ƒ } t j |  d d d t ƒ} t j | d d d t ƒ} t j t ƒ : t j t	 ƒ $ t j
 | | g d	 d ƒj ƒ  Wd  QXWd  QXd  S(
   Ni   i   i   i   i   i   R9   R:   Rƒ   (   R&   R  R   R,   R;   R=   R>   R?   R  R  R   RM   (   R   R   R   R   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt$   test_concat_unknown_divisions_errorsx  s    !c          C   sž  i t  j i d d d g d 6d d d g d 6ƒ d  6t  j i d d d g d 6d d d g d 6ƒ d! 6t  j i d d d g d 6d
 d
 d
 g d 6ƒ d" 6}  t i d d 6d d 6ƒ } t j |  d	 | d  d  g ƒ } i t  j i d d d g d 6d d d g d 6ƒ d# 6t  j i d d d g d 6d d d g d 6ƒ d$ 6t  j i d d d g d 6d
 d
 d
 g d 6ƒ d% 6}  t j |  d | d  d  g ƒ } i t  j i d d d g d 6d d d g d 6ƒ d& 6t  j i d d d g d 6d d d g d 6ƒ d' 6}  t i d d 6d d 6ƒ } t j |  d | d  d  g ƒ } i t  j i d d d g d 6d d d g d 6d d d g d 6ƒ d( 6t  j i d d d g d 6d d d g d 6d d d g d 6d d d d g ƒd) 6}  t i d d 6d d 6d d 6d t  j g  d ƒ ƒ} t j |  d | d
 d d g ƒ } | | g | | g | | g g } t j | g ƒ | k sHt ‚ xO| D]G} g  | D] } | j ƒ  ^ q\}	 t	 j
 d t ƒ  }
 t  j |	 t  } Wd  QX|
 r­t n d  } t j | ƒ  t j | ƒ } Wd  QX| j | d
 j | d j k sÿt ‚ | j d* | j d k st ‚ t | | ƒ t	 j
 ƒ  B t	 j d t ƒ t | j ƒ t t j | ƒ j ƒ k svt ‚ Wd  QXt	 j
 d t ƒ  }
 t  j |	 d d t } Wd  QX|
 r»t n d  } t j | ƒ  t j | d d ƒ} Wd  QX| j | d
 j | d j k st ‚ | j d+ | j d k s3t ‚ t | | ƒ t	 j
 ƒ  H t	 j d t ƒ t | j ƒ t t j | d d ƒj ƒ k st ‚ Wd  QXqOWd  S(,   Ni   i   i   R   i   i   i   R   R   i    i   i   i	   R   i
   i   i   i(   i2   i<   R   iF   iP   iZ   R"   R#   R   t   recordR„   RL   RI   (   R   i    (   R   i   (   R   i   (   R   i    (   R   i   (   R   i   (   R   i    (   R   i   (   R   i    (   R   i   (   N(   N(   R&   R   R   R   R+   t   IndexR   R   RM   R…   R†   R›   R   Rˆ   R=   R  R9   R    R	   R‡   t   setRO   (   t   dskt   metaR   R   R"   R#   t   casest   caset   _ct   pdcaset   wRb   t   ctxRa   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat2ƒ  s^    30330333,)!!' 3' c    
      C   s   t  j t j j d d ƒ d t d ƒ d t d ƒ ƒ}  t  j t j j d d ƒ d t d ƒ d t d ƒ ƒ} t  j t j j d d ƒ d t d	 ƒ d t d
 ƒ ƒ} t j |  d ƒ } t j | d ƒ } t j | d ƒ } t j	 d t
 ƒ  } t  j |  | g t  } Wd  QX| rt n d  } t j | ƒ  t j | | g ƒ }	 Wd  QX|	 j | j d  | j k skt ‚ |	 j | j | j k sŠt ‚ t |	 | ƒ t j	 ƒ  F t j d t ƒ t t j | | g d t
 ƒt  j |  | g ƒ ƒ Wd  QXt j	 d t
 ƒ " } t  j |  | | g t  } Wd  QX| r-t n d  } t j | ƒ  t j | | | g ƒ }	 Wd  QX|	 j | j d  | j d  | j k st ‚ |	 j | j | j | j k sµt ‚ t |	 | ƒ t j	 ƒ  L t j d t ƒ t t j | | | g d t
 ƒt  j |  | | g ƒ ƒ Wd  QXd  S(   Ni   i   RU   t   ABCDER   RE   t   ABCFGt   ghijklt   ABCHIt   mnopqri   i   R  iÿÿÿÿR„   t   interleave_partitions(   R&   R   Rà   Rá   Râ   R   R   R,   R…   R†   R›   R   R   Rˆ   R+   R=   R  R    R   R9   R	   R‡   (
   RŠ   R‹   RŒ   R~   RB   R   R  Rb   R  Ra   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat3Á  sF    #!R„   c       
   C   s  t  j t j j d d ƒ d t d ƒ d t d ƒ ƒ}  t  j t j j d d ƒ d t d ƒ d t d ƒ ƒ} t  j t j j d d	 ƒ d t d
 ƒ d t d ƒ ƒ} t j |  d ƒ } t j | d ƒ } t j | d ƒ } d } | | g | | g | | g | | g | | g | | g | | g g } x‰ | D] } g  | D] }	 |	 j ƒ  ^ q7}
 t	 t j
 | d t ƒt  j
 |
 t  ƒ t	 t j
 | d d d t ƒt  j
 |
 d d t ƒ q*Wd } t j t ƒ & } t j
 | | g d d d t ƒWd  QX| t | j ƒ k st ‚ d  S(   Ni
   i   RU   R  R   RÌ   i   t   fghijklmnopqri   t   CDEXYZi   i   sy   All inputs have known divisions which cannot be concatenated in order. Specify interleave_partitions=True to ignore orderR  RL   RI   s!   'join' must be 'inner' or 'outer't   invalid(   R&   R   Rà   Rá   Râ   R   R   R,   RM   R	   R   R›   R   R=   R>   R?   t   strt   valueR   (   RŠ   R‹   RŒ   R~   RB   R   t   msgR  R  R"   R  t   err(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt"   test_concat4_interleave_partitionsð  s,    $!%c          C   s¢  t  j t j j d d ƒ d t d ƒ d t d ƒ ƒ}  t  j t j j d d ƒ d t d ƒ d t d ƒ ƒ} t  j t j j d d ƒ d t d ƒ d t d	 ƒ ƒ} t  j t j j d d ƒ d t d
 ƒ d t d	 ƒ ƒ} t  j t j j d d ƒ d t d
 ƒ d t d ƒ ƒ} t j |  d ƒ } t j | d ƒ } t j | d ƒ } t j | d ƒ } t j | d ƒ }	 | | g | | g | | g | |	 g | | g | |	 g |	 | | g |	 | g | j | j g | j	 | j	 g | j |	 j g | j | j	 g | j	 | j
 g | j |	 j g | | j g | j	 | g |	 | j | g g }
 xþ |
 D]ö } g  | D] } | j ƒ  ^ qN} t j d  ƒ - t t j | d t ƒt  j | t  ƒ Wd  QXt t j | d d d t ƒt  j | d d ƒƒ t t j | d d ƒt  j | d d ƒƒ t t j | d d d d ƒt  j | d d d d ƒƒ qAW| | g | | g |  | g |  j | j g | j	 | j	 g | | j g | j	 | g | |  | j	 g g }
 xú |
 D]ò } g  | D]' } t | t ƒ rÖ| j ƒ  n | ^ qµ} t t j | d t ƒt  j | ƒ ƒ t t j | d d d t ƒt  j | d d ƒƒ t t j | d d ƒt  j | d d ƒƒ t t j | d d d d ƒt  j | d d d d ƒƒ q¨Wd  S(   Ni   i   RU   R  R   R$   i   t   FGHIJKR¦   t   FGHABt   fklmnopi   i   R  RL   RI   Rƒ   i   (   R&   R   Rà   Rá   Râ   R   R   R,   R-   t   FRô   R.   RM   R=   R  R+   R	   R   R›   R   R   R   (   RŠ   R‹   RŒ   t   pdf4t   pdf5R~   RB   R   t   ddf4t   ddf5R  R  R"   R  (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat5  sT    $'---+ -4+s   known, cat_index, divisionsc      	      sO  t  j i t d ƒ d 6t j d ƒ d 6t d ƒ d 6t j d d d ƒd	 6ƒ t  j i t d
 ƒ d 6t j d d ƒ d 6t d ƒ d 6t j d d d d ƒd	 6ƒ t  j i t d ƒ d 6t j d d ƒ d 6t d ƒ d 6t j d d d d ƒd	 6ƒ g } x8 | D]0 } | j j d ƒ | _ | j j d ƒ | _ qý Wˆ  r_g  | D] } | j | j ƒ ^ q>} n  g  | D]! } t	 j
 | d d d ˆ ƒ^ qf} ˆ s¼t | d j d g d t ƒ| d _ n  ‡  ‡ ‡ f d †  } xwd d g D]i} | | | | ƒ }	 t |	 j ƒ st ‚ t |	 j ƒ ˆ k s&t ‚ | g  | D] }
 |
 j ^ q0g  | D] }
 |
 j ^ qI| ƒ }	 t |	 ƒ ˆ k s|t ‚ ˆ  rÃ| g  | D] }
 |
 j ^ qŒg  | D] }
 |
 j ^ q¥| ƒ }	 n  | | d d d g g | d | d d d g g | d | ƒ }	 t |	 d ƒ s,t |	 j ƒ s,t ‚ t |	 j ƒ ˆ k sÞt ‚ qÞWd  S(   Nt   xxxxxR  i   R   t   abcbcR   Rª   t   f8R_   t   yyyyyi
   t   abbbat   zzzzzi   t   bcbcct   categoryR9   i   R:   i    R   c            s¿   t  | d | ƒ} t j  |  d | d ˆ ƒ} t | | ƒ ˆ r™ t t j | j | j ƒ  ƒ } x8 g  | D] } | j d  ^ qh D] } | j | k q Wn  ˆ  s» t	 | j
 ƒ ˆ k s» t ‚ | S(   NRL   R  i    (   R   R   R	   R    R   RO   t   __dask_keys__t   iloct   _metaR   R   R   (   t   ddfst   dfsRL   t   solt   resR7   t   it   p(   t	   cat_indexR    t   known(    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   check_and_returnm  s    '"RI   RJ   i   (   R&   R   R   Rà   t   arangeR  R©   R   R¨   R   R,   R   R6  R›   R   R   R   t   hasattr(   R>  R=  R    t   framesR@   R<  t   dframesR?  RL   R:  R;  (    (   R=  R    R>  s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat_categoricalN  sH    "(."%%%c          C   sI  t  j i d g d 6d t  j d g d d ƒƒ}  t  j i d g d 6d t  j d g d d ƒƒ} |  j j d	 ƒ j j d d g ƒ |  d <| j j d	 ƒ j j d d g ƒ | d <t j |  d
 ƒ } t j | d
 ƒ } t	 |  j
 d  | j
 d  g ƒ } | j j d k st ‚ t j	 | | g ƒ } t  j	 |  | g ƒ } t | | ƒ d  S(   NR   R   R   s   2015-03-24 00:00:16Rª   s   datetime64[ns]R"   s   2015-03-29 00:00:44R3  i   i    s   M8[ns](   R&   R   t   DatetimeIndexR   R©   t   catt   set_categoriesR   R,   R   R5  R   Rª   R   R	   (   t   b2t   b3t   db2t   db3Ra   Rb   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_concat_datetimeindex  s    (( c       	   C   s8  t  j i d d d d d d g d 6d d d d d d g d 6ƒ }  t  j i d d d d d d g d 6d d d d d d g d 6d	 d d
 d d d d g ƒ} t  j i d d d d d d g d 6d d d d d d g d 6d	 d d
 d d d d g ƒ} t j |  d ƒ } t j | d ƒ } t j | d ƒ } t  j d
 d g d d d	 d d g ƒ} d „  } | | | |  | ƒ | | | |  | ƒ | | j | j |  j | j ƒ | | | |  | ƒ | | j | j |  j | j ƒ | | | |  | ƒ | | j | j |  j | j ƒ | | | |  | ƒ | | j | j |  j | j ƒ d  S(   Ni   i   i   i   i   i   R   R   R   i   i   i	   i
   i   R"   t   namec         S   sH   t  j d t ƒ  | j | ƒ } Wd  QX|  j | ƒ } t | | ƒ d  S(   NR  (   R…   R†   R›   t   appendR	   (   t   dask_objt   dask_appendt
   pandas_objt   pandas_appendRb   Ra   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   check_with_warning·  s    (   R&   R   R   R,   R  R   R   (   R@   Rz   R{   RA   RB   R   R   RS  (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_append§  s,    """'	c          C   s¤  i t  j i d d d g d 6d d d g d 6ƒ d 6t  j i d d d g d 6d d d g d 6ƒ d 6t  j i d d d g d 6d
 d
 d
 g d 6ƒ d 6}  t i d d 6d d 6ƒ } t j |  d	 | d  d  g ƒ } i t  j i d d d g d 6d d d g d 6ƒ d 6t  j i d d d g d 6d d d g d 6ƒ d 6t  j i d d d g d 6d
 d
 d
 g d 6ƒ d 6}  t j |  d | d  d  g ƒ } i t  j i d d d g d 6d d d g d 6ƒ d  6t  j i d d d g d 6d d d g d 6ƒ d! 6}  t i d d 6d d 6ƒ } t j |  d | d  d  g ƒ } t | j | ƒ | j ƒ  j | j ƒ  t  ƒ t | j | ƒ | j ƒ  j | j ƒ  t  ƒ t	 j
 d  ƒ g t | j j | ƒ | j j ƒ  j | j ƒ  ƒ ƒ t | j j | ƒ | j j ƒ  j | j ƒ  ƒ ƒ Wd  QXt | j | ƒ | j ƒ  j | j ƒ  t  ƒ t | j | ƒ | j ƒ  j | j ƒ  t  ƒ t	 j
 d  ƒ g t | j j | ƒ | j j ƒ  j | j ƒ  ƒ ƒ t | j j | ƒ | j j ƒ  j | j ƒ  ƒ ƒ Wd  QXt | j | j ƒ  ƒ | j ƒ  j | j ƒ  t  ƒ t | j | j ƒ  ƒ | j ƒ  j | j ƒ  t  ƒ t	 j
 d  ƒ s t | j j | j ƒ  ƒ | j j ƒ  j | j ƒ  ƒ ƒ t | j j | j ƒ  ƒ | j j ƒ  j | j ƒ  ƒ ƒ Wd  QXt | j | j ƒ  ƒ | j ƒ  j | j ƒ  t  ƒ t | j | j ƒ  ƒ | j ƒ  j | j ƒ  t  ƒ t	 j
 d  ƒ s t | j j | j ƒ  ƒ | j j ƒ  j | j ƒ  ƒ ƒ t | j j | j ƒ  ƒ | j j ƒ  j | j ƒ  ƒ ƒ Wd  QXd  S("   Ni   i   i   R   i   i   i   R   R   i    i   i   i	   R   i
   i   i   i(   i2   i<   R   iF   iP   iZ   R"   (   R   i    (   R   i   (   R   i   (   R   i    (   R   i   (   R   i   (   R   i    (   R   i   (   R&   R   R   R   R+   R	   RN  RM   R   R=   R  R   R   (   R  R  R~   RB   R   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_append2Ï  sB    30330333..17..17447=447c       	   C   s£  t  j i t j d d ƒ d 6t d ƒ d 6t j d d d d ƒd 6ƒ t  j i t j d d	 ƒ d 6t d
 ƒ d 6t j d d	 d d ƒd 6ƒ g }  g  } xr |  D]j } | j j d ƒ | _ | j ƒ  } | j j j	 t d ƒ ƒ | _ | j | _
 | j | j | j ƒ ƒ q W| \ } } x…t t g D]w} g  |  D]! } t j | d d d t ƒ^ q1} | s‡t | d j d g d t ƒ| d _ n  | \ } }	 | j |	 ƒ }
 t |
 | j | ƒ ƒ t |
 j
 ƒ | k sÓt ‚ t |
 j ƒ | k sît ‚ | j j |	 j ƒ }
 t |
 | j j | j ƒ ƒ t |
 j
 ƒ | k s:t ‚ t |
 ƒ | k sRt ‚ | j
 j |	 j
 ƒ }
 t |
 | j
 j | j
 ƒ ƒ t |
 ƒ | k s$t ‚ q$Wd  S(   Ni   i
   R   R0  R   Rª   R.  R_   i   R2  R3  Rï   R9   i   R:   i    R   (   R&   R   Rà   R@  R   R   R©   t   copyRF  RG  R   RN  R¨   R›   R;   R   R,   R   R6  R	   R   R   (   RB  t   frames2R@   Rz   Ry   R>  R<  RC  R~   RB   R:  (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_append_categorical  s>    ".c          C   sx   t  j i d d d d g d 6d d d d d g ƒ}  t j |  d d ƒ} | j | ƒ } |  j |  ƒ } t | | ƒ d  S(   Ni   i   i   i   R   R   R9   (   R&   R   R   R,   RN  R	   (   R@   RA   RB   Rz   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_append_lose_divisions,  s
    4c          C   sŠ   t  j i d d d g d 6d d d d g ƒ}  t j |  d d ƒ} | j d ƒ } | j | d d ƒ} | j d	 k s| t ‚ | j ƒ  d  S(
   Ni   R   R   i   i   R9   Rv   RÊ   (   i   i   (	   R&   R   R   R,   R¨   RL   R    R   RM   (   R@   RA   RB   t   joined(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_singleton_divisions5  s    .c          C   sr   t  j i d d d d g d 6ƒ }  t j |  d d ƒj d ƒ } | j d d d t ƒ } t | |  j d ƒ ƒ d  S(   Ni    R   R9   i   R    t   force(   i    i    (   R&   R   R   R,   R¨   R'   R›   R	   (   R@   RA   RB   (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt#   test_repartition_repeated_divisions?  s    "c          C   s  t  j i d d d d g d 6ƒ }  t  j i d g d 6ƒ } t j |  d d ƒj d ƒ } t j | d d ƒj d ƒ } | j d k sŒ t ‚ t | ƒ t |  ƒ k sª t ‚ | j | d d d t	 d	 t	 ƒ} |  j d ƒ } | j d ƒ } | j | d d d t	 d	 t	 ƒ} t
 | | ƒ d  S(
   Ni    R   R9   i   i   RF   RG   R’   R“   (   R&   R   R   R,   R¨   R9   R   R   R`   R›   R	   (   Ry   Rz   R~   RB   t   r1t   sf1t   sf2t   r2(    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   test_multi_duplicate_divisionsG  s    "!!(N   R…   t   dask.dataframet	   dataframeR   t   numpyRà   t   pandasR&   t   pandas.util.testingt   utilt   testingRS   t	   dask.baseR    t   dask.dataframe.coreR   t   dask.dataframe.methodsR   R   t   dask.dataframe.multiR   R   R   R   R   t   dask.dataframe.utilsR	   R
   R   R   R   R=   R8   RC   RD   RP   R[   t   markt   parametrizeRc   R‚   R‰   R‘   R   R¢   t   slowRÃ   RË   RØ   Rå   Rè   Ré   Rë   Rí   Rî   Rû   Rü   Rÿ   R  R  R  R  R  R  t   filterwarningsR"  R+  R›   R;   RD  RL  RT  RU  RX  RY  R[  R]  Rb  (    (    (    s>   lib/python2.7/site-packages/dask/dataframe/tests/test_multi.pyt   <module>   sx   ((	F		.	#	'	$$$'1		0†'`'G				$		$						>	/!=>		(6	'			
	