ó
¦–Õ\c           @   sì   d  d l  Z d  d l Z d  d l j j Z d  d l j	 Z
 d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d l Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z  d S(   iÿÿÿÿN(	   t   shard_df_on_indext   meta_nonemptyt	   make_metat   raise_on_meta_errort
   check_metat   UNKNOWN_CATEGORIESt   is_dataframe_liket   is_series_liket   is_index_likec       	   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 t |  d d g ƒ ƒ } t | d j ƒ d g k sŠ t ‚ t | d j ƒ d d d g k s² t ‚ t | d j ƒ d d g k s× t ‚ d  S(   Ni   i   i   i   i   i   t   xt   abdabdt   yt   indexi
   i   i   i(   i2   i<   i    (   t   pdt	   DataFramet   listR    R   t   AssertionError(   t   dft   result(    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_shard_df_on_index   s    2"(c          C   sŒ  t  j i d d d g d 6t d ƒ d 6d d d	 g d
 6d d d d g ƒ}  t |  ƒ } t | ƒ d k so t ‚ | j |  j k j ƒ  s t ‚ t | j	 t
 |  j	 ƒ ƒ s® t ‚ t |  j ƒ } t | ƒ d k sÕ t ‚ | j |  j j k sð t ‚ t | j	 t
 |  j	 ƒ ƒ st ‚ t |  j	 ƒ } t | t
 |  j	 ƒ ƒ s>t ‚ t | ƒ d k sVt ‚ t j |  d d ƒ} t | ƒ | j k s†t ‚ t i d d 6d d 6d d
 6ƒ } t | t  j ƒ s¿t ‚ t | ƒ d k s×t ‚ | j |  j k j ƒ  sõt ‚ t | j	 t  j ƒ st ‚ t d d d g ƒ } | j d d
 d g k j ƒ  sIt ‚ t | ƒ d k sat ‚ | j |  j | j j	 k j ƒ  s‰t ‚ t | j	 t  j ƒ s¤t ‚ t d ƒ } t | t  j ƒ sÈt ‚ t | ƒ d k sàt ‚ | j d k sõt ‚ | j d k s
t ‚ t i d d 6d d 6d t  j d d g d d ƒƒ} t | j	 t  j ƒ sZt ‚ t | j	 ƒ d k sut ‚ t d d t  j d d g d d ƒƒ} t | j	 t  j ƒ s·t ‚ t | j	 ƒ d k sÒt ‚ t i d d 6ƒ } t | j j j ƒ d k st ‚ | j j j d t k s%t ‚ t d  ƒ } t | j j ƒ d k sOt ‚ | j j d t k skt ‚ t t j d ƒ ƒ } t | t j ƒ s˜t ‚ t d ƒ } t | t j ƒ s¼t ‚ t  j d d d ƒ } t | ƒ } | | k sït ‚ t d ƒ } t | t j ƒ st ‚ t t ƒ } t | t j t ƒ j
 ƒ s@t ‚ t t j d ƒ ƒ } t | t j ƒ smt ‚ t j t  d „  ƒ sˆt ‚ d  S(!   Ni   i   i   t   at   abct   bg      ð?g       @g      @t   cR   i
   i   i   i    t   npartitionst   i8t   Ot   f8t   i4t   namet   foot   categoryiÐ  t   boolc           S   s
   t  d  ƒ S(   N(   R   t   None(    (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   <lambda>j   t    (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (!   R   R   R   R   t   lenR   t   dtypest   allt
   isinstanceR   t   typeR   t   dtypet   ddt   from_pandast   _metat
   RangeIndext   columnst   SeriesR   t
   Int64Indext   catt
   categoriesR   t   npt   float64t	   Timestampt   int64t   floatt   bool_t   pytestt   raisest	   TypeError(   R   t   metat   ddfR	   (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_make_meta   sr    9!!!$('!!c          C   sÈ  t  j i
 t  j d d d g ƒ d 6t d ƒ d 6d d 6t j d	 ƒ d
 6t j d	 ƒ d 6t  j d ƒ d 6t  j d d d d d ƒd 6t  j	 d d ƒ d 6t j
 d ƒ d 6t  j t g d ƒ d 6d t d ƒ ƒ}  |  j d d !} t | ƒ } | j | j k j ƒ  st ‚ | d d d k s"t ‚ | d d d k s<t ‚ | d d d k sVt ‚ | d
 d t j d	 ƒ k syt ‚ | d
 d j d k s–t ‚ | d d t j d	 ƒ k s¹t ‚ | d d j d k sÖt ‚ | d d t  j d ƒ k sùt ‚ | d d t  j d d d ƒk s"t ‚ | d d t  j	 d  d ƒ k sHt ‚ | d d d k sbt ‚ | d d t k s|t ‚ t | d ƒ } | j | d j k s¨t ‚ | d | k j ƒ  sÄt ‚ d  S(!   Nt   Alicet   Bobt   Carolt   AR   t   Bt   bart   Ci   t   Dt   Es
   2016-01-01t   Ft   periodsi   t   tzs   America/New_Yorkt   Gs   1 hourst   mst   Ht    t   It   JR.   t
   DCBAHGFEIJi    R   t   f4R   s   1970-01-01 00:00:00t   1(   R   R   t   CategoricalR   R3   t   float32t   int32R5   t
   date_ranget	   Timedeltat   voidR   t   ilocR   R%   R&   R   R)   (   t   df1t   df2t   df3t   s(    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_meta_nonemptym   s>    "
###&c          C   s}   t  j d d d d g ƒ }  t |  ƒ } t  j d d d g d d d g g d d d g d d d d g ƒ} t j | | ƒ d  S(   NR.   RB   RC   R   R   R   R   (   R   R   R   t   tmt   assert_frame_equal(   R   t   rest   exp(    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_meta_duplicated   s    c          C   sh  xad d d g D]P}  t  j g  t  j g  d |  ƒd t d d ƒ} t | ƒ } t | ƒ t  j k sj t ‚ t | j ƒ t | j ƒ k sŽ t ‚ | j | j k s¦ t ‚ | j	 | j	 k s¾ t ‚ | j
 ƒ  } t | ƒ } | j d k së t ‚ | j d k s t ‚ t | j j ƒ t | j j ƒ k s*t ‚ | j j | j j k sHt ‚ | j	 | j	 k s t ‚ q Wd  S(	   NR   R   s   M8[ns]R)   t   orderedR   R   R   (   R   t   CategoricalIndext   Indext   TrueR   R(   R   R2   Re   R   t	   to_seriesR)   R1   (   R)   t   idxRb   R^   (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt#   test_meta_nonempty_empty_categories›   s    $*c       	   C   sÏ  t  j d d d ƒ}  t |  ƒ } t | ƒ t  j k s< t ‚ | j |  j k sT t ‚ t  j d g d d ƒ}  t |  ƒ } t | ƒ t  j k s“ t ‚ | j |  j k s« t ‚ t  j d g d d ƒ}  t |  ƒ } t | ƒ t  j k sê t ‚ | j |  j k st ‚ t  j d g d d d d	 d d ƒ}  t |  ƒ } t | ƒ t  j k sMt ‚ | j	 |  j	 k set ‚ | j
 |  j
 k s}t ‚ | j |  j k s•t ‚ t  j d g d d d d ƒ}  t |  ƒ } t | ƒ t  j k sÚt ‚ | j
 |  j
 k sòt ‚ | j |  j k s
t ‚ t  j t j d d
 ƒ g d d d d ƒ}  t |  ƒ } t | ƒ t  j k s[t ‚ | j
 |  j
 k sst ‚ | j |  j k s‹t ‚ t  j d g d d g d t d d ƒ}  t |  ƒ } t | ƒ t  j k sÙt ‚ | j |  j k j ƒ  s÷t ‚ | j |  j k st ‚ | j |  j k s't ‚ t  j g  t g d t d d ƒ}  t |  ƒ } t | ƒ t  j k sot ‚ | j |  j k s‡t ‚ | j |  j k sŸt ‚ t  j d g d d ƒt  j d g d d ƒg } t  j d | d d g d g g d d d g ƒ }  t |  ƒ } t | ƒ t  j k s&t ‚ xY t |  j | j ƒ D]B \ } } t | ƒ t | ƒ k sft ‚ | j | j k s<t ‚ q<W| j |  j k sšt ‚ t  j d g d d ƒt  j d d g d d g d d ƒ t  j t j d d
 ƒ g d d ƒg } t  j d | d d g d g d g g d d d d g ƒ }  t |  ƒ } t | ƒ t  j k sWt ‚ xY t |  j | j ƒ D]B \ } } t | ƒ t | ƒ k s—t ‚ | j | j k smt ‚ qmW| j |  j k sËt ‚ d  S(   Ni   R   R   R   s
   1970-01-01t   freqt   dRJ   s   America/New_YorkRF   t   xyxt   zzzRe   g      ð?R   t   levelst   labelsi    t   namest   dataR2   t	   timedelta(   R   R-   R   R(   R   R   R0   Rg   t   DatetimeIndexRJ   Rl   t   PeriodIndext   TimedeltaIndexR3   t   timedelta64Rf   Rh   R2   R&   Re   R   t   Float64Indext
   MultiIndext   zipRp   Rr   (   Rj   Rb   Rp   t   idx1t   idx2(    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_meta_nonempty_index¯   sv    *'!0"!'9"c          C   s[   t  j d g d d ƒ}  t |  ƒ } t | ƒ t  j k s? t ‚ | j |  j k sW t ‚ d  S(   Ni   R   R   (   R   t   UInt64IndexR   R(   R   R   (   Rj   Rb   (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_meta_nonempty_uint64indexö   s    c          C   sd   t  t j d ƒ ƒ }  t |  t j ƒ s- t ‚ t j d d d ƒ } t  | ƒ }  |  | k s` t ‚ d  S(   Ng      ð?iÐ  i   (   R   R3   R4   R'   R   R   R5   (   R<   R	   (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_meta_nonempty_scalarý   s
    c          C   s  y  t  ƒ   t d ƒ ‚ Wd  QXWnH t k
 rj }  |  j d j d ƒ sN t ‚ d |  j d k s} t ‚ n Xt s} t d ƒ ‚ y# t  d ƒ  t d ƒ ‚ Wd  QXWnH t k
 rê }  |  j d j d ƒ sÎ t ‚ d |  j d k sý t ‚ n Xt sý t d ƒ ‚ d  S(   Ns	   Bad stuffi    s   Metadata inference failed.
t   RuntimeErrors   should have erroredt   myfuncs'   Metadata inference failed in `myfunc`.
(   R   R‚   t	   Exceptiont   argst
   startswithR   t   False(   t   e(    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_raise_on_meta_error  s    
c    	   
   C   sW  t  j i d d d g d 6t t t g d 6d d d g d	 6d d
 d g d 6t  j d d d g ƒ d 6t  j d d
 d g d t j ƒd 6ƒ }  |  j d  } t	 |  | ƒ |  k s² t
 ‚ |  j } t	 | | j ƒ | k sÙ t
 ‚ |  j } |  j } t	 | | j j d ƒ d t ƒ| k st
 ‚ t	 | | j j d ƒ d t ƒ| k sEt
 ‚ t	 | | j j d ƒ d t ƒ| k srt
 ‚ t j t ƒ & } t	 | | j j d ƒ d t ƒWd  QXt | j ƒ d k sÄt
 ‚ | j i d d 6d d 6ƒ d d d	 d g } |  d d d d g } t j t ƒ  } t	 | | d d ƒWd  QXd } t | j ƒ | k sSt
 ‚ d  S(   NR	   R   t   zR   R   i   g      @g      @R   i   i   Rm   Rˆ   R)   t   fi    R   t   numeric_equalR   s¼   Metadata mismatch found.

Partition type: `Series`
+----------+---------+
|          | dtype   |
+----------+---------+
| Found    | int64   |
| Expected | float64 |
+----------+---------+R   t   funcnamet   from_delayeds.  Metadata mismatch found in `from_delayed`.

Partition type: `DataFrame`
+--------+----------+----------+
| Column | Found    | Expected |
+--------+----------+----------+
| a      | object   | category |
| c      | -        | float64  |
| e      | category | -        |
+--------+----------+----------+(   R   R   Rh   R‡   RT   R/   R3   t   uint64RZ   R   R   Rˆ   Rm   R‹   t   astypeR9   R:   t
   ValueErrort   strt   value(	   R   R<   Rˆ   Rm   R‹   t   errt   meta2R\   Rc   (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_check_meta  s0    (			---%-
c          C   sî  t  j i d d d g d 6ƒ }  t j |  d d ƒ} t |  ƒ sF t ‚ t | ƒ sX t ‚ t |  j ƒ sn t ‚ t | j ƒ s„ t ‚ t |  j ƒ sš t ‚ t | j ƒ s° t ‚ t t  j ƒ sÆ t ‚ t |  ƒ sÙ t ‚ t | ƒ sì t ‚ t |  j ƒ st ‚ t | j ƒ st ‚ t |  j ƒ s,t ‚ t | j ƒ sBt ‚ t t  j	 ƒ sXt ‚ t
 |  ƒ skt ‚ t
 | ƒ s~t ‚ t
 |  j ƒ s”t ‚ t
 | j ƒ sªt ‚ t
 |  j ƒ s¿t ‚ t
 | j ƒ sÔt ‚ t
 t  j ƒ sêt ‚ d  S(   Ni   i   i   R	   R   (   R   R   R*   R+   R   R   R	   R   R   R/   R   Rg   (   R   R=   (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   test_is_dataframe_likeP  s.    (!   t   numpyR3   t   pandasR   t   pandas.util.testingt   utilt   testingR`   t   dask.dataframet	   dataframeR*   t   dask.dataframe.utilsR    R   R   R   R   R   R   R   R   R9   R   R>   R_   Rd   Rk   R~   R€   R   R‰   R–   R—   (    (    (    sH   lib/python2.7/site-packages/dask/dataframe/tests/test_utils_dataframe.pyt   <module>   s    @	
	V	#			G					6