
    >ie݇                    X   d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dl	m
Z d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZmZ d d
lmZmZ d dl m!Z! d Z"d Z#d Z$d Z%d Z&d Z'd Z(ej)        *                    dg d          d             Z+d Z,d Z-d Z.d Z/ej)        *                    ddej0        ej1        g          d             Z2d Z3d Z4ej)        *                    dg dg d g d!g          d"             Z5ej)        6                    e d#$          d%             Z7ej)        6                    ed&$          d'             Z8ej)        *                    dg d(g d)g          ej)        *                    d*d+d,g          d-                         Z9ej)        j:        d.             Z;d/ Z<d0 Z=d1 Z>ej)        *                    d2d+d,g          d3             Z?d4 Z@d5 ZAd6 ZBd7 ZCd8 ZDd9 ZEd: ZFd; ZGd< ZHd= ZIej)        *                    d> ejJ        d?d@           ejJ        dAdB           ejJ        dCdD          g          dE             ZKdF ZLej)        j:        ej)        *                    dGdHdIg          dJ                         ZMdK ZNdL ZOdM ZPej)        *                    dNdOdOgd+g          dP             ZQdQ ZRdR ZSdS ZTdT ZUdU ZVdV ZWdW ZXdX ZYdY ZZdZ Z[ej)        *                    d[d\d] ed^d_d`           edadbdc          fg          dd             Z\de Z]df Z^dg Z_dh Z`di Zadj Zbej)        *                    dk ecg dl          dm eb            g          dn             Zddo Zeej)        j:        ej)        *                    dpdqdrg          ds                         ZfdS )t    )annotations)datetimeN)config)	Blockwise)PANDAS_GE_200tm)_meta_from_array)optimize)	assert_eqget_string_dtypepyarrow_strings_enabled)Delayeddelayed)hlg_layer_topologicalc                 ^   t          j        ddgddggt           j                  } t          |           }t	          |t
          j                  sJ |d         j        t           j        k    sJ |d         j        t           j        k    sJ t          j	        |j
        t          j        ddg                     t          j        ddgd	d
ggt           j                  } t          | ddg          }t	          |t
          j                  sJ |d         j        t           j        k    sJ |d         j        t           j        k    sJ t          j	        |j
        t          j        ddg                     t          j        t                    5  t          | g d           d d d            n# 1 swxY w Y   t           j                            d           t           j                            dd          } t'          j        | dddg          } t+          | j                  dk    sJ d S )N            dtyper         ?       @      @      @abcolumnsr   r   c*      2   	chunksizer      )nparrayint64r	   
isinstancepd	DataFramer   r   assert_index_equalr   Indexfloat64pytestraises
ValueErrorrandomseedranddd
from_arraylen	divisionsxress     ?lib/python3.11/site-packages/dask/dataframe/io/tests/test_io.pytest_meta_from_arrayr?      s'   
1a&1a&!222A
1

Cc2<(((((q6<28####q6<28#####+rxA'7'7888
3*sCj)<<<A
1sCj
1
1
1Cc2<(((((s8>RZ''''s8>RZ''''#+rxc
';';<<<	z	"	" 5 5OOO44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 INN2
	sAA
a2Sz:::Aq{q      s   F00F47F4c                 r   t          j        g dt           j                  } t          |           }t	          |t
          j                  sJ |j        t           j        k    sJ t          j        g dt           j                  } t          | d          }t	          |t
          j                  sJ |j	        dk    sJ |j        t           j        k    sJ t          j        g dt           j                  } t          | dg          }t	          |t
          j
                  sJ |d         j        t           j        k    sJ t          j        |j        t          j        dg                     t          j        t"                    5  t          | ddg           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   r   r   r   r<   r   r   r   )r(   r)   r0   r	   r+   r,   Seriesr   object_namer-   r   r.   r   r/   r1   r2   r3   r;   s     r>   test_meta_from_1darrayrE   2   s   

333A
1

Cc29%%%%%9
""""
"*---A
1c
*
*
*Cc29%%%%%8s????9
""""
"*---A
1se
,
,
,Cc2<(((((s8>RZ''''#+rx777	z	"	" 0 0S#J////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   F,,F03F0c                 r   t          j        d t          d          D             dt           j        fdt           j        fg          } t          |           }t          |t          j                  sJ |d         j	        t           j        k    sJ |d         j	        t           j        k    sJ t          j        |j        t          j        ddg                     t          | ddg          }t          |t          j                  sJ |d         j	        t           j        k    sJ |d         j	        t           j        k    sJ t          j        |j        t          j        ddg                     t          j        t                     5  t          | g d           d d d            d S # 1 swxY w Y   d S )Nc                    g | ]	}||d z  f
S 
    .0is     r>   
<listcomp>z+test_meta_from_recarray.<locals>.<listcomp>J   s     (((!QV(((    rJ   r   r   r   r   r    )r(   r)   ranger0   r*   r	   r+   r,   r-   r   r   r.   r   r/   r1   r2   r3   r;   s     r>   test_meta_from_recarrayrR   H   s   
((eBii(((#rz1BS"(O0T	 	 	A 1

Cc2<(((((s8>RZ''''s8>RX%%%%#+rxc
';';<<<
1sCj
1
1
1Cc2<(((((s8>RZ''''s8>RX%%%%#+rxc
';';<<<	z	"	" 5 5OOO44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5rF   c                    t          j        d                              dd          } t          j        | d          }t          |t          j                  sJ t          j        |j	        t          j        g d                     |j        dk    sJ |                                j        | k                                    sJ t          j        | dt!          d          	          }t          |t          j                  sJ t          j        |j	        t          j        g d
                     |j        dk    sJ |                                j        | k                                    sJ t#          j        t&                    5  t          j        t          j        d                     d d d            d S # 1 swxY w Y   d S )N   rJ   r   r   r&   r   r   r   r   r      	   abcr%   r    )rJ   rJ   rJ   )shape)r(   arangereshaper7   r8   r+   r-   r   r.   r   r,   r/   r:   computevaluesalllistr1   r2   r3   onesr<   ds     r>   test_from_arrayre   \   s   
	&!!"a((A
a1%%%Aa&&&&&!)RXiii%8%8999;,&&&&IIKK!#((*****
a1d5kk:::Aa&&&&&!)RXooo%>%>???;,&&&&IIKK!#((*****	z	"	" 3 3
bgL1112223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   (GGGc                    t          j        d t          d          D             ddg          } t          j        | d          }t          |t          j                  sJ t          |j                  dd	gk    sJ |j	        d
k    sJ |
                                                    d          | k                                    sJ d S )Nc                    g | ]	}||d z  f
S rI   rK   rL   s     r>   rO   z5test_from_array_with_record_dtype.<locals>.<listcomp>o   s     111!1a"f+111rP   rJ   r   i4)r   ri   r   r   rU   r   r   rW   Findex)r(   r)   rQ   r7   r8   r+   r-   ra   r   r:   r^   
to_recordsr`   rc   s     r>   !test_from_array_with_record_dtyperm   n   s    
11uRyy111+{9STTTA
a1%%%Aa&&&&&	??sCj((((;,&&&&IIKK"""//1499;;;;;;;rP   c            
        t          d          } t          j        t          | t          j                            t          |                               t          j        dt          |                               }t          j
        |d          }t                      rdnd}t          |j                  |k    sJ t          |j                  dk    sJ t          |j        d	         t          |j        d	                             sJ t#          ||           t          j
        |d
          }d}t%          j        t(                    5 }t          j
        |dd           d d d            n# 1 swxY w Y   |t+          |j                  v sJ t%          j        t(          t.          f          5 }t          j
        |           d d d            n# 1 swxY w Y   |t+          |j                  v sJ t          |j                  |k    sJ t          |j                  dk    sJ t          |j        d	         t          |j        d	                             sJ t#          ||           d S )Naaaaaaabbbbbbbbccccccc)r   r   20120101startperiodsrj   r   r'   r   r   rX   rU   z;Exactly one of npartitions and chunksize must be specified.r   )npartitionsr&   )ra   r,   r-   dictr(   r4   randnr9   
date_ranger7   from_pandasr   daskr:   r+   typerk   r   r1   r2   r3   strvalueAssertionError)r   dfddfexpected_layersmsgerrs         r>   test_from_pandas_dataframer   x   s   %&&A	qBIOOCFF++,,,m*c!ff===
 
 
B .Q

C244;aa!Osx==O++++s}""""cmA&RXa[(9(9:::::b#
.q
)
)
)C
GC	z	"	" 7c
rqA66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7#ci..    	
N3	4	4 
r              #ci..    sx==O++++s}""""cmA&RXa[(9(9:::::b#s$   E55E9<E98GG Gc                    t          j        dg di          } dD ]}t          j        | |          }t	          |                                          dk    sJ |j        d         dk    sJ |j        d         dk    sJ t          j        | |          }t	          |                                          dk    sJ |j        d         dk    sJ |j        d         dk    sJ d	D ]}d
D ]}t          j        ddg|z  i          } t          j        | d|          }t          | |           t          j        dg|z  dt                    }t          j        |d|          }t          ||           d S )Nr<   rA   )r   r   rT   r   r   r   rU   )TF)r   r      rt   sort)rD   r   )
r,   r-   r7   rx   r9   r^   r:   r   rB   int)r~   rN   r   r   r   sdss          r>   test_from_pandas_smallr      s   	sIII&	'	'B 	$ 	$N2q!!199;;1$$$${1~""""{2!####N2+++199;;1$$$${1~""""{2!#####   	 	AsQC!Gn--B.>>>Cb#	1#'3777Aqt<<<Ba	 rP   n)r   r   r   r   c                    t          j        g dt          d          dg d          }t          j        ||           j        | k    sJ d S )N)r   r   r   r   r   r'   abdabdr<   y)rJ      rT   (   r$   <   rj   rt   )r,   r-   ra   r7   rx   rt   )r   r~   s     r>   (test_from_pandas_npartitions_is_accurater      sc    	   tH~~66>V>V>V
 
 
B >"!,,,8A======rP   c                    d} t          j        t          j                            |           t          j        d|                     }t          j        |d          }t          |j	                  dk    sJ t          |j
                  t          |j	                  dz   k    sJ t          |j
        d         t          |j        d                             sJ t          j        ||                                           t          j        |d	          }t          |j	                  dk    sJ t          |j
                  t          |j	                  dz   k    sJ t          |j
        d         t          |j        d                             sJ t          j        ||                                           d S )
Nr   rp   rq   rj   r   r   r   rX   rU   )r,   rB   r(   r4   rv   rw   r7   rx   r9   ry   r:   r+   rz   rk   r   assert_series_equalr^   )r   r   r   s      r>   test_from_pandas_seriesr      sp   
A
	")//!$$BM
TU,V,V,VWWWA	1		Brw<<1r|BGq 00000bl1otAGAJ'7'7888881bjjll+++	Q	'	'	'Brw<<1r|BGq 00000bl1otAGAJ'7'7888881bjjll+++++rP   c                     t          j        dg dig d          } t          j        | dd          }|j        rJ t          | |           t          j        | dd          }|j        rJ t          | |           d S )	Nr<   rA   )r   r   r   rj   r   Fr   )r&   r   )r,   r-   r7   rx   known_divisionsr   r~   r   s     r>   test_from_pandas_non_sortedr      s    	sIII&iii	8	8	8B
.
7
7
7C""""b#
.qu
5
5
5C""""b#rP   c                     t          j        ddgidg          } t          j        | d          }|j        dk    sJ t          ||            d S )Nr<   r   rj   r   )r   r   )r,   r-   r7   rx   r:   r   r   s     r>   test_from_pandas_single_rowr      s[    	sQCj	,	,	,B
.
+
+
+C=F""""c2rP   c                 @   t          j        g dt          t          d                    d          } | j                            d          | _        t          j        | d          }t          | |           t          j        | d          }t          | |           d S )N)	z
2015-08-28z
2015-08-27z
2015-08-26z
2015-08-25z
2015-08-24z
2015-08-21z
2015-08-20z
2015-08-19z
2015-08-18rY   )DateValzdatetime64[ns]r   rU   )	r,   r-   ra   rQ   r   astyper7   rx   r   r   s     r>   $test_from_pandas_with_datetime_indexr      s    	
 
 
 a>>	
 	

 
B  gnn-..BG
.Q

Cb#
.q
)
)
)Cb#rP   
null_valuec                    t          j        dg did| dg          }t          j        t          d          5  t          j        |dd	
           d d d            d S # 1 swxY w Y   d S )Nr<   rA   CArj   z!is non-numeric and contains nullsmatchr   Fr   )r,   r-   r1   r2   NotImplementedErrorr7   rx   )r   r~   s     r>   !test_from_pandas_with_index_nullsr      s    	sIII&sJ.D	E	E	EB	*2U	V	V	V 6 6
rqu55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   AA"%A"c                    t          j        dg dig d          } t          j        t          d          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        |            d d d            n# 1 swxY w Y   t          j        t          d	          5  t          j        | d
d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        | d           d d d            d S # 1 swxY w Y   d S )Nr<   rA   r   r   r   rj   z$must be a pandas DataFrame or Seriesr   fooz2one of npartitions and chunksize must be specifiedzprovide npartitions as an intg@Fr   zprovide chunksize as an intgQE2@rU   )r,   r-   r1   r2   	TypeErrorr7   rx   r3   r~   s    r>    test_from_pandas_with_wrong_argsr      s5   	sIII&iii	8	8	8B	y(N	O	O	O  
u              	N
 
 
   	r               
y(G	H	H	H 8 8
rs77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	y(E	F	F	F , ,
rU++++, , , , , , , , , , , , , , , , , ,sG   AA A?B  B$'B$C**C.1C.D44D8;D8c                 B   t          j        t          j                            ddd          t          d                    } t          j        | d          }t          |                    t                    
                                          }|dgdz  k    sJ d S )	Nr   rJ   rJ   r   sizeABCDr   r   rU   )r,   r-   r(   r4   randintra   r7   rx   map_partitionsr9   r^   )r~   r   num_rowss      r>   test_from_pandas_chunksize_oner     s    	bi''2G'<<d6ll	S	S	SB
.q
)
)
)CC&&s++335566H sRxrP   rk   )r   Br   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                    t          j        t          d          | d                              d          }t	          j        |d          }|j        dk    sJ d S )NrX   r   rk   rk   r   r   r   r   r   r   )r,   r-   rQ   	set_indexr7   rx   r:   )rk   r~   r   s      r>   'test_from_pandas_npartitions_duplicatesr     s]     
E!HHu55	6	6	@	@	I	IB
.
+
+
+C=0000000rP   z-dataframe.convert-string requires pandas>=2.0reasonc                    t          j        dd           t          j                            ddi          5  t          j        g dg d          } t          j        g d	g d
g ddg d          }t          j	        | d          }t          j	        |d          }d d d            n# 1 swxY w Y   t          | |           t          ||           t          j                            ddi          5  t          j	        | d          }t          j	        |d          }d d d            n# 1 swxY w Y   |                     d          }|j                            d          |_        |                    ddi          }|j                            d          |_        t          ||           t          ||           d S )NpyarrowzRequires pyarrow stringsr   dataframe.convert-stringFr   barrickybobbyr   r   r!   rd   rj   r   r   r   r   g      @g      @g      @g       @r<   r   zr   r   Tzstring[pyarrow]r   )r1   importorskipry   r   setr,   rB   r-   r7   rx   r   r   rk   )r   r~   r   r   	s_pyarrow
df_pyarrows         r>   &test_from_pandas_convert_string_configr     sZ    	*DEEEE 
4e<	=	= 0 0I666>R>R>RSSS\!\\)))555 
 '&&
 
 
 ^A1---nRQ///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ab# 
4d;	<	< 0 0^A1---nRQ///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *++Io,,->??IOC!2344J!'../@AAJij#s$   A)B--B14B19-D22D69D6zRequires pandas<2.0c                 |   t          j        dd           t          j        g dg dg ddg d	          } t          j                            d
di          5  t          j        t          d          5  t          j
        | d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   zDifferent error without pyarrowr   r   r   r   r   r   rj   r   Tz&requires `pandas>=2.0` to be installedr   r   r   )r1   r   r,   r-   ry   r   r   r2   RuntimeErrorr7   rx   r   s    r>   -test_from_pandas_convert_string_config_raisesr   @  sf   
	*KLLLL	%%%111	
 	

 #""
 
 
B 
4d;	<	< . .] H
 
 
 	. 	. N21----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.. . . . . . . . . . . . . . . . . .s6   B16BB1B	B1 B	!B11B58B5rA   r   r   TFc                    t          j        dg di|          }|                                }t          j        |d|           }d|j        d<   t          ||           d S )Nr   rA   rj   r   r   d   )r   r   )r,   r-   copyr7   rx   ilocr   )r   rk   pdfexpectedr~   s        r>   test_from_pandas_immutabler   R  se     ,YYY'u
5
5
5CxxzzH		6	6	6BCHTNb(rP   c                     t          j        d          } g d}|                     t          d          |d                              d          }t          j        |d          }|j        dk    sJ d S )	Ncudfr   rX   r   rk   r   r   r   )r1   r   r-   rQ   r   r7   rx   r:   )r   rk   r~   r   s       r>   +test_gpu_from_pandas_npartitions_duplicatesr   \  sx    v&&D444E	eAhh77	8	8	B	B7	K	KB
.
+
+
+C=0000000rP   c                    t          j        dd          } t          j        t	          j        d          g d          }t          j        | g d          }t          |j        d          	                                rJ t          ||           t          j        | g d          }t          |j        d          	                                rJ t          ||           d S )NrJ   r   r   r   chunksr    r   r   )darb   r,   r-   r(   r7   from_dask_arrayr   ry   is_materializedr   r8   )r<   r   r~   df2s       r>   test_DataFrame_from_dask_arrayr   f  s    
'''A
,rww''
A
A
AC		A	/	/B$RWb11AACCCCCb# -???
3
3
3C$SXr22BBDDDDDb#rP   c                 h   t          j        dd          } | dz  } t          j        t	          j        d          dz  g d          }t          j        | g d          t          fdt          t          j
        j                            D                       sJ t          |           d S )Nr   r   r   r   r    r   c              3  h   K   | ],}t          j        |                                           V  -d S N)r   ry   r   )rM   rN   r~   s     r>   	<genexpr>zDtest_DataFrame_from_dask_array_with_blockwise_ops.<locals>.<genexpr>z  sR         ""'1--==???     rP   )r   rb   r,   r-   r(   r7   r   r`   rQ   r9   ry   layersr   )r<   r   r~   s     @r>   1test_DataFrame_from_dask_array_with_blockwise_opsr   s  s    
'''AFA
,rww''!+___
E
E
EC		A	/	/B     s27>**++        b#rP   c                    t          j        dd          } t          j        t	          j        d          d          }t          j        | d          }t          ||           t          j        t	          j        d                    }t          j        |           }t          ||           t          j        |           }t          ||           d S )NrJ   r   r   r   rD   )	r   rb   r,   rB   r(   r7   r   r   r8   )r<   pserserser2s       r>   test_Series_from_dask_arrayr     s    
1A9RWR[[s+++D

Q
$
$Cc4 9RWR[[!!D

Q

Cc4 =Dc4rP   as_framec                   t          j        t          j        t	          d          t          d                    d          }| r|                                }t          j        |j        |j	                  }t          ||           d S )NrJ   
abcdefghijrj   r   r   )r7   rx   r,   rB   rQ   ra   to_framer   r_   rk   r   )r   r   results      r>   test_from_dask_array_indexr     sx    
ryr$|2D2DEEESTUUUA JJLL888FarP   c            	        t           j                            dd          } t          j        t
          d          5  t          j        | t          j	        t          j        d                               d d d            n# 1 swxY w Y   t          j        t          j        t          d                    d	
          }t          j        t          j        t          d                    d
          }t          j        t
          d          5  t          j        |j        |j                   d d d            d S # 1 swxY w Y   d S )NrI   r   )r   r   zmust be an instancer   rJ   rj      r   r   r   z".*index.*numbers of blocks.*4 != 2)r   r4   uniformr1   r2   r3   r7   r   r,   r/   r(   r\   rx   rB   rQ   r_   rk   )r<   r   r   s      r>   !test_from_dask_array_index_raisesr    s   
	uT22A	z)>	?	?	? = =
1BHRYr]]$;$;<<<<= = = = = = = = = = = = = = = 	ryr++;;;A
ryr++;;;A	z)M	N	N	N 4 4
181733334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s#   ;BBB!EE	Ec                 x   t          j        dd          } t          j        d          }t          j        t
          d          5  t          j        |            d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   r   zmore than 2D arrayr   )	r   rb   r(   r1   r2   r3   r7   r   r8   r   s     r>   #test_from_array_raises_more_than_2Dr    s-   
	!$$$A
	A	z)=	>	>	>  
1               
z)=	>	>	>  
a                 s$   A''A+.A+B//B36B3c                    t          j        dd          } t          j        d          }t          j        |           }t          j        |          }t          ||           t          j        |          }t          ||           d S )Nr   r   r   r   	r   rb   r(   r7   r   r,   r-   r   r8   r<   r   d1p1d2s        r>   'test_from_dask_array_compat_numpy_arrayr    sw    
'''A
A		A		B	aBb"	q		Bb"rP   c                    t          j        dd          } t          j        t          d          5  t          j        | dg           d d d            n# 1 swxY w Y   t          j        d          }t          j        t          d          5  t          j        |dg           d d d            d S # 1 swxY w Y   d S )Nr   r  r   znames must match widthr   r   r   )	r   rb   r1   r2   r3   r7   r   r(   r8   r   s     r>   (test_from_array_wrong_column_shape_errorr    s;   
'''A	z)A	B	B	B - -
1se,,,,- - - - - - - - - - - - - - - 	A	z)A	B	B	B ( (
a#''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s#   AAAB55B9<B9c                 *   t          j        dd          } t          j        d          }t          j        | g d          }t          j        |g d          }t          ||           t          j        |g d          }t          ||           d S )Nr   r  r   r    r   r  r	  s        r>   !test_from_array_with_column_namesr    s    
'''A
A		A	7	7	7B	a	1	1	1Bb"	q///	2	2	2Bb"rP   c                    t          j        dd          } t          j        d          }t          j        |           }t          j        |          }t          ||           t          j        |          }t          ||           d S )NrJ   r   r   )	r   rb   r(   r7   r   r,   rB   r   r8   r	  s        r>   *test_from_dask_array_compat_numpy_array_1dr    su    
1A
A		A		B	1Bb"	q		Bb"rP   c                 B   t          j        dd          } t          j        d          }t          j        | d          }t          j        |d          }t          ||           t          j        | 	                                d          }t          ||           d S )NrJ   r   r   rD   r   r   )
r   rb   r(   r7   r   r,   rB   r   r8   r^   r	  s        r>   $test_from_array_1d_with_column_namesr    s    
1A
A		Av	.	.	.B	16	"	"	"Bb"	qyy{{F	3	3	3Bb"rP   c                 $   t          j        dd          } t          j        d          }t          j        | dg          }t          j        |dg          }t          ||           t          j        |dg          }t          ||           d S )NrJ   r   r   rD   r   r  r	  s        r>   2test_from_array_1d_list_of_columns_gives_dataframer    s    
1A
A		Ax	0	0	0B	a&	*	*	*Bb"	q6(	+	+	+Bb"rP   c                    t          j        ddgddg          } t          j        | d          }t	          j        |          }t          j        |j        t          j
        dd	g                     t          |t          j        |                      t          t	          j        |d	dg
          t          j        | d	dg
                     d S )N)r   r   )r   r   rh   )r   objectr   )r   r   r   r   r   )r(   r)   r   r8   r7   r   r   r.   r   r,   r/   r   r-   )r<   r   r~   s      r>   !test_from_dask_array_struct_dtyper    s    
(H%k?-KLLLA
a%%%A		A		B"*bhSz&:&:;;;b",q//"""
1sCj1112<CQT:3V3V3V    rP   c                    t          j        t          j        d          t          j        dd          ddt          j        t          j        fft          j        d          j                  } t          j        |           }t          |t          j	                  sJ |j
        rJ t          |t          j	        t          j        d                    d           t          j                            d          t          j                            d	          d
}t          j        |dt          j        t          j        fdft          j                  } t          j        |           }t          |t          j                  sJ |j
        rJ t          |t          j        |                                           d           d S )Nr      ))r<   r   )r<   r   r<   r   F)check_indexr   r   r   r   )r<   r   r   )r<   r   r   )r   )r   Arrayr(   r\   nanr   r7   r   r+   rB   r   r   r,   r4   r0   r-   r^   )dxr~   dsks      r>   #test_from_dask_array_unknown_chunksr%    sk   	9Q<<29Q+;+;<<
&"&	
	!	
 
B 
	B		Bb")$$$$$!!!!b")BIbMM**>>>> 	((00ry?O?OPV?W?W
X
XC	#sbfbf-t4bj	A	AB		B		Bb",'''''!!!!b",rzz||,,%@@@@@@rP   zchunksizes, expected_divisions)r   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   c                    t          j        t          j        d          |           }t	          j        |          }|j        |k    sJ d S )Nr'   r   )r   r8   r(   r\   r7   r   r:   )
chunksizesexpected_divisionsmonotonic_indexr~   s       r>   !test_from_dask_array_empty_chunksr+    sJ     mBIaLLDDDO		O	,	,B<-------rP   c                    t           j                            d          t           j                            d          d} t          j        | dt           j        t           j        ft           j        fft           j                  }t          j        t          d          5  t          j
        |           d d d            d S # 1 swxY w Y   d S )Nr  r  r   r<   z Shape along axis 1 must be knownr   )r(   r4   r   r!  r"  r0   r1   r2   r3   r7   r   )r$  r#  s     r>   (test_from_dask_array_unknown_width_errorr-  #  s    	((00ry?O?OPV?W?W
X
XC	#sbfbf-y92:	F	FB	z)K	L	L	L  
2                 s   CCCzarray_backend, df_backend)cupyr   )numpypandasc                   t          j        |           }t          j        |          }t          j        d| i          5  t	          j        d          }d d d            n# 1 swxY w Y   t          |j        |j                  sJ t          j
        |          }t          j
        |                                          }t          |j        |j                  sJ t          |j        |j                  sJ t          ||           d S )Nzarray.backendrJ   )r1   r   r   r   r   rb   r+   _metandarrayr7   r8   r^   rB   r   )array_backend
df_backend	array_libdf_libdarrddf1ddf2s          r>   test_from_array_dispatchingr;  *  s&    #M22I ,,F	_m4	5	5  wr{{              dj)"344444=D=((Ddj&-00000dj&-00000dDs   A  A$'A$c                    t          j        g dg ddt          j        g dd                    } t          j        | d          }|                                                                t          |                     d	                    k    sJ |                    d
                                          t          |                     d
                    k    sJ |                    d                                          ddddddddddddgk    sJ |                    d
d                                          ddddddddddddddddgk    sJ |j	                            d
                                          t          | j	        
                                          k    sJ |j	                                                                        t          | j	                  k    sJ |j	                            d
d                                          ddiddiddiddigk    sJ |j	                            d                                          ddiddiddiddigk    sJ d S )Nr   r   r   r   r   r   r   r   r   r   indr   rj   r   FTru   formatr   r   r   r!   r   rd   r   r   )rk   r<   r   r   r   r   r<   )r,   r-   r/   r7   rx   to_bagr^   ra   
itertuplesr<   items)r   r   s     r>   test_to_bagrE  @  s   
"""66h+++%888	 	 	A .A

C::<<!!T!,,u*=*=%>%>>>>>::d##%%all4.@.@)A)AAAAA::V:$$,,..	3     ::d6:**2244Ca((Ca((Ca((Ca((	9     5<<%%''4		+<+<<<<<5<<>>!!##tACyy00005<<V<,,4466	c
	c
	c
	c
	;     5<<v<&&..00	c
	c
	c
	c
	5      rP   c            	        ddl m}  ddlm} t	          j        t          j        g dg ddt          j        g dd	          
          d          }|	                    d          }t          ||          sJ t           | |j         |j        df          |j        d                    t           | |j         |j        df          |j        d                    d S )Nr   )get)Bagr   r=  r   r>  r?  r   rj   r   r   framer@  r   )ry   rG  dask.bagrH  r7   rx   r,   r-   r/   rB  r+   r   rD   
partitions)rG  rH  r   bagdfs       r>   test_to_bag_framerM  f  s
   
.
&&&\\\::(///e<<<	
 	
 	
   C JJgJ&&EeS!!!!!cc%*uz1o..q0ABBBcc%*uz1o..q0ABBBBBrP   c                 .   t          j        d           ddlm}  t	          j        g dg ddt	          j        g dd	          
          }t          j        |d          } | |	                                |	                                d           d S )N
dask.arrayr   r   r   r=  r   r>  r?  r   rj   r   F
check_type)
r1   r   dask.array.utilsr   r,   r-   r/   r7   rx   rl   )r   r~   r   s      r>   test_to_recordsrT  {  s    
%%%******	"""66h+++%888
 
 
B .Q

CI
))e     rP   lengthsr   c                   t          j        d           ddlm} t	          j        g dg ddt	          j        g dd	          
          }t          j        |d          }|	                    |           } ||	                                |d           t          |t          j                  sJ d}|j        |k    sJ d S )NrO  r   rP  r   r=  r   r>  r?  r   rj   r   rU  FrQ  ))r   r   )r1   r   rS  r   r,   r-   r/   r7   rx   rl   r+   r   r!  r   )rU  r   r~   r   r   expected_chunkss         r>   test_to_records_with_lengthsrY    s    
%%%******	"""66h+++%888
 
 
B .Q

C^^G^,,FIbmmoov%8888fbh'''''O=O++++++rP   c                 0   t          j        d           t          j        g dg ddt          j        g dd                    } t          j        | d	          }t          j        t                    5  |	                    g d
           t          j
        d           d d d            n# 1 swxY w Y   t          j        t                    5  |	                    d           t          j
        d           d d d            d S # 1 swxY w Y   d S )NrO  r   r=  r   r>  r?  r   rj   r   )r   r   r   rW  z3 != 2r   zUnexpected value)r1   r   r,   r-   r/   r7   rx   r2   r3   rl   failr   s     r>   test_to_records_raisesr\    s   
%%%	"""66h+++%888
 
 
B .Q

C	z	"	"  yyy)))H               
z	"	" ( (q!!!&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s$   6-B//B36B3+DDDc                 f  
 t          j        t          j                            d          t          d                    } | j        d d         | j        dd         | j        dd         | j        dd         g

fd	t          d
          D             }|d                                         }d }d g dfD ]}t          j
        |||          }t          ||            t          |                    |                                                    g dk    sJ |j        |d uk    sJ t          j
        d |D             |j        |          }t          || j                   t          |                    |                                                    g dk    sJ |j        |d uk    sJ d | j        D             }t          j
        ||          }t!          |j        j        |j                 t(                    sJ t          t          j
        ||          |            t          t          j
        d |D             d          | j                   t+          j        t.                    5  t          j
        ||g d           d d d            n# 1 swxY w Y   t+          j        t.                    5 }	t          j
        ||j                                                   d d d            n# 1 swxY w Y   t1          |	j                                      d          sJ d S )Nr   r   abcddatar   r   r   r'   rJ   c                J    g | ]} t          j                  |           S rK   r   __getitem__rM   rN   partss     r>   rO   z%test_from_delayed.<locals>.<listcomp>  /    
;
;
;Q%75$%%a((
;
;
;rP   r   r   c                F    t          j        t          |           g          S r   )r,   rB   r9   r<   s    r>   <lambda>z#test_from_delayed.<locals>.<lambda>  s    ry#a&&** rP   )r   r   r   r'   rJ   )metar:   r   c                    g | ]	}|j         
S rK   r   rM   rd   s     r>   rO   z%test_from_delayed.<locals>.<listcomp>  s    ...QQS...rP   c                    g | ]}|d fS )f8rK   )rM   r!   s     r>   rO   z%test_from_delayed.<locals>.<listcomp>  s    +++1aY+++rP   rj  c                    g | ]	}|j         
S rK   rl  rm  s     r>   rO   z%test_from_delayed.<locals>.<listcomp>  s    000qqs000rP   )r   ro  )r   r   r   r'   z)Metadata mismatch found in `from_delayed`)r,   r-   r(   r4   normalra   r   rQ   r^   r7   from_delayedr   r   r   r   r   r+   ry   r   _namer   r1   r2   r3   r{   r|   
startswith)r~   dfsrj  my_lenr:   r   r   meta2	check_ddfere  s             @r>   test_from_delayedr{    s   	29+++994<<	P	P	PBWRaR["'!A#,!bgadmDE
;
;
;
;%((
;
;
;Cq6>>D**F,,,- 	> 	>	oc	BBB#rC&&v..668899\\\IIII"y'<====O..#...TVyQQQ!RTA$$V,,446677<<<GGGG"y'<=====++
+++E%000Iin+IO<iHHHHHboc...333bo00C000{CCCRTJJJ	z	"	" @ @
$,,,????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 
z	"	" 4a
$&)))113334 4 4 4 4 4 4 4 4 4 4 4 4 4 4qw<<""#NOOOOOOOs$   9JJ#&J#.K==LLc                    t          j        t          t          d           t	          d                    t          j        ddgdz  i                    dz   } t          | j        j	        | j
                 t                    sJ t          t          | j        |                                           j	                  dk    sJ d S )Nc                6    t          j        d| gdz  i          S )Nr<   rJ   r,   r-   rh  s    r>   ri  z3test_from_delayed_optimize_fusion.<locals>.<lambda>  s    ",aS2X"?"? rP   rJ   r<   r   rp  r   )r7   rs  mapr   rQ   r,   r-   r+   ry   r   rt  r   r9   r
   __dask_keys__)r   s    r>   !test_from_delayed_optimize_fusionr    s    
 	??@@%))LLsQC"Ho..	
 	
 	
 		  choci0)<<<<<x#"3"3"5"566=>>!CCCCCCrP   c                 `   ddl m}  d t          d          D             }t          j        |          }|                                }d |                                D             } | |j        |          }|                    |           |	                                }|j
        dk    sJ d S )Nr   )optimize_blockwisec                v    g | ]6} t          t          j                  t          j        d                     7S ))r   r   )r   r,   r-   r(   rb   rL   s     r>   rO   z3test_from_delayed_to_dask_array.<locals>.<listcomp>  s5    
D
D
Da 72<  11
D
D
DrP   r   c                    g | ]
}|d          S r   rK   )rM   ks     r>   rO   z3test_from_delayed_to_dask_array.<locals>.<listcomp>  s    ...QAaD...rP   )keys)rY   r   )dask.blockwiser  rQ   r7   rs  to_dask_arrayr  ry   cullr^   r[   )r  rv  r   arrr  r$  r   s          r>   test_from_delayed_to_dask_arrayr    s    
 211111
D
D588
D
D
DC
/#

C




C /.#++--...D

SXD
1
1
1CHHTNNN[[]]F<6!!!!!!rP   c                 t   t          j        t          j                            d          t          d                    } | j        d d         | j        dd         | j        dd         | j        dd         gfd	t          d
          D             }|d                                         }d |D             }t          j
        ||          j        }|D ]\}|j        j                                        D ];\  }}|j        |         |k    sJ |j        |         |j        j        |         k    sJ <]d S )Nr   r   r^  r_  r   r   r'   rJ   c                J    g | ]} t          j                  |           S rK   rb  rd  s     r>   rO   z4test_from_delayed_preserves_hlgs.<locals>.<listcomp>  rf  rP   r   r   c                    g | ]	}|j         
S rK   rl  rm  s     r>   rO   z4test_from_delayed_preserves_hlgs.<locals>.<listcomp>   s       qqs   rP   rp  )r,   r-   r(   r4   rr  ra   r   rQ   r^   r7   rs  ry   r   rD  dependencies)	r~   rv  rj  chainedhlgrd   
layer_namelayerre  s	           @r>    test_from_delayed_preserves_hlgsr    sI   	29+++994<<	P	P	PBWRaR["'!A#,!bgadmDE
;
;
;
;%((
;
;
;Cq6>>D  C   G
/'
-
-
-
2C S S!"!4!4!6!6 	S 	SJ:j)U2222#J/163Fz3RRRRRR	SS SrP   c                    t          j        g dd t          d          D             t          d                    t          j        g dt          d          g          } t          j         t          fd                      g| 	          }t          j        t                    5 }|	                                
                    d
           d d d            n# 1 swxY w Y   d}|t          |j                  v sJ d S )N)(1)(2)dateentvalc                @    g | ]}t          |d z  |d z  d z             S r   )rQ   rL   s     r>   rO   z5test_from_delayed_misordered_meta.<locals>.<listcomp>  s.    888!eAE1q519%%888rP   r   )r   r`  rk   )r  r  r  r  r  r   )r   r`  c                      S r   rK   r   s   r>   ri  z3test_from_delayed_misordered_meta.<locals>.<lambda>  s    2 rP   rp  sync)	schedulerzRThe columns in the computed data do not match the columns in the provided metadata)r,   r-   rQ   r7   rs  r   r1   r2   r3   reset_indexr^   r{   r|   )misordered_metar   infor   r~   s       @r>   !test_from_delayed_misordered_metar    sK   	44488uQxx888Ahh
 
 
B l444E!HH:  O /.7::::..001
H
H
HC	z	"	" 4d!!F!3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	  #dj//!!!!!!s   -)C""C&)C&c                    t          j        dddgiddg          } t          j        dddgiddg          }t          j        t	          |           t	          |          gd	
          }|j        sJ |j        dk    sJ d S )Nr<   r   r   rJ   rj   r   r      sortedr:   )r   r   r  )r,   r-   r7   rs  r   r   r:   )r   r   r   s      r>   test_from_delayed_sortedr     s    
cAq6]1b'222A
cAq6]3*555A
WQZZ0HEEEA;-''''''rP   c                    t          j        g dg dd          } t          j        | d          }|                                \  }}t          |t                    sJ t          |t                    sJ t          |                                | j	        d d                    |j
                                        }|                                }t          |t                    sJ t          |                                |           d S )Nr   )rJ   r   rT   r   r   r   r   )r,   r-   r7   rx   
to_delayedr+   r   r   r^   r   r<   sum)r~   r   r   r   r<   r#  s         r>   test_to_delayedr  *  s    	LLL/?/?/?@@	A	AB
.
+
+
+C >>DAqa!!!!!a!!!!!aiikk272A2;''' 			A	
Bb'"""""bjjllArP   c                    t          j        dt          t          d                    i          } t	          j        | d          }|dz   j        d d         }|                                d         }t          |j	                  dk     sJ |                    d          d         }t          |j	                  t          |j	                  k    sJ t          |                    d          |                                           t          |                    d          |                                           |j                                        }|                                }|                    d          }t          |j	                  t          |j	                  k     sJ t          |                                |                                           d S )	Nr<   r   r   r   r   r   F)optimize_graph)r,   r-   ra   rQ   r7   rx   locr  r9   ry   r  r   get_partitionr^   r<   r  )r~   r   r:  rd   r  r<   r#  dx2s           r>   test_to_delayed_optimize_graphr  ;  sx   	sDrOO,	-	-B
.
,
,
,C!G=!D 	!Aqv;;		.	.q	1B"'??fTY//////d  ##QYY[[111d  ##RZZ\\222 	

A	
B
,,e,
,
,Crw<<#ch--''''bjjllCKKMM*****rP   c                 <   t          j        dd          } t          j        t          j        ddd          t          t          d                    d          }t          j        |d	
          	                    d          }t          j
        | |j        d          }|j        j        |j        j        k    sJ |j        j        |j        j        k    sJ t          j        t          j        ddd          t          t          d                    d          }t          j        |d	
          	                    d          }t          j
        | |j        d          }|j        j        |j        j        k    sJ |j        j        |j        j        k    sJ d S )NrI   r   r   z
2019-01-01rJ   1min)rs   freq)r  val1r   r   r  val2)rk   r   r   r   g?)idxr  r  )r   rb   r,   r-   rw   ra   rQ   r7   rx   r   r   rk   r   rD   r(   r\   )r<   r~   r   r:  s       r>    test_from_dask_array_index_dtyper  P  si   
d###A	M,HHHrOO	
 	

 
B .
+
+
+
5
5f
=
=Casy&AAAD9?dj.....9>TZ_,,,,	bi1c22DrOOLL	M	MB
.
+
+
+
5
5e
<
<Casy&AAAD9?dj.....9>TZ_,,,,,,rP   valsr   r   )r   r   i  rJ   r   i  r     c                   d	d}| d         df| d         dfg}t          j        ||d          }t          j        | d         | d         | d         | d         gg d          }|j        j        }t                      rt          d | D                       rdnd}t          |          |k    sJ t          ||j
                 t                    sJ |j        t          |          k    sJ t          ||           d S )
Nr   c                H    | \  }}t          j        |g|z  |g|z            S )Nrj   r,   rB   )inputr   r|   rk   s       r>   funcz"test_from_map_simple.<locals>.funcu  s.     uy%4w~>>>>rP   r   r   r   )r   r   r   r   rj   c              3  @   K   | ]}t          |t                    V  d S r   )r+   r{   )rM   vs     r>   r   z'test_from_map_simple.<locals>.<genexpr>  s,      .P.Paz!S/A/A.P.P.P.P.P.PrP   r  )r7   from_mapr,   rB   ry   r   r   anyr9   r+   rt  r   rt   r   )r  r  iterabler   expectr   r   s          r>   test_from_map_simpler  i  s'   ? ? ? ? a!tAwl+H
+dH1
-
-
-CY	a$q'47DG,ll  F X_F$&&W3.P.P4.P.P.P+P+PWVW  v;;/))))fSY'33333 ?c(mm++++c6rP   c                    d } t          j        dd          t          j        dd          gt          j        ddgd          t          j        ddgd          gf}t          j        g dd          }t          j        dt          j        g dd          i|          }t          j        | g|R  }t          ||           d S )	Nc                4    t          j        d| |z   i          S Naddr~  r   s     r>   ri  z%test_from_map_multi.<locals>.<lambda>  s    eQU^44 rP   r   r*   r   r   r   r   r   r  )r   r   r   r   rj   r(   r\   r)   r,   r-   r7   r  r   )r  	iterablesrk   r  r   s        r>   test_from_map_multir    s     54D	1G	$	$	$bi&A&A&AB	1a&	(	(	("(Aq6*I*I*IJI H\\\111E\5"(<<<w"G"G"GHPUVVVF
+d
'Y
'
'
'Cc6rP   c                 B   d } t          j        dd          t          j        dd          g}t          j        g dd          }t          j        dt          j        g dd          i|          }t          j        | |dd	g
          }t          ||           d S )Nc                :    t          j        d| |z   |z   i          S r  r~  r   s      r>   ri  z$test_from_map_args.<locals>.<lambda>  s    2<A	(:;; rP   r   r*   r   r  r  )r   r'   r   r'   rj   r   )argsr  )r  r  rk   r  r   s        r>   test_from_map_argsr    s     <;D	!7+++RYq-H-H-HIHH\\\111E\5"(<<<w"G"G"GHPUVVVF
+dHAq6
2
2
2Cc6rP   c                     d } ddg}d}t          j        | ||          }t          j        g dg d          }|j        |k    sJ t          ||           d S )	Nc                |    t          j        | d         gdz  t          | d         | d         dz                       S )Nr   r   r   rj   )r,   rB   rQ   rh  s    r>   ri  z)test_from_map_divisions.<locals>.<lambda>  s5    RY!vzqtQqTAX1F1FGGG rP   )r   r   )r   r   )r   r   r   r  )r   r   r   r   r&  rj   )r7   r  r,   rB   r:   r   )r  r  r:   r   r  s        r>   test_from_map_divisionsr    s     HGD(#HI
+dH	
:
:
:CYll  F
 =I%%%%c6rP   c                 h   t                      } dd}ddg}t          j        dg dig d          }t          j        dt          j        dg| 	          i          j        d d         }t          j        |||d
          }t          |j        |           t          ||           t          j        dt          j        dg| 	          i          j        d d         }t          j        |||d
          }t          |j        |           t          j
        t          d          5  t          |                                |           d d d            n# 1 swxY w Y   t          j        |||dd
          }t          |j        |           t          |                                |           d S )Nr   c                :    t          j        d| g|z  i          }|S )Nr<   r~  )r<   r   r~   s      r>   r  z test_from_map_meta.<locals>.func  s     \3a.))	rP   r   r   r<   r   r   r   r   r  rj   r   r   )rj  r   r   z The columns in the computed datar   F)rj  enforce_metadatar   r  )r   r,   r-   rB   r   r7   r  r   r2  r1   r2   r3   r^   )string_dtyper  r  r  rj  r   s         r>   test_from_map_metar    s    $%%L    SzH\3 4 4 45\\\JJJF <bi\BBBCDDI"1"MD
+dH41
5
5
5Ccic6 <bi\BBBCDDI"1"MD
+dH41
5
5
5Cci	z)K	L	L	L ) )#++--((() ) ) ) ) ) ) ) ) ) ) ) ) ) )
 +dH4%1
M
M
MCcickkmmV$$$$$s   (#EEEc                     d } ddg}d}d}t          j        dg dig d	          }t          j        | |||
          }t	                      s|j        |dz   |z   k    sJ t          ||           d S )Nc                6    t          j        d| gdz  i          S )Nr<   r   r~  rh  s    r>   ri  z+test_from_map_custom_name.<locals>.<lambda>  s    R\3a.11 rP   r   r   zmy-label8675309r<   r  r  rj   )labeltoken-)r,   r-   r7   r  r   rt  r   )r  r  r  r  r  r   s         r>   test_from_map_custom_namer    s     21DSzHEE\3 4 4 45\\\JJJF
+dHE
?
?
?C"$$ 0yECK%/////c6rP   c               #  8   K   t          g d          E d {V  d S )Nr   r   r   )	enumeraterK   rP   r>   
_generatorr    s0      )))))))))))rP   r  r  ))r   r   )r   r   )r   r   c                    d }t          j        ||           }t          j        g dg d          }t	          |                                |           d S )Nc                X    | d         dz   }| d         }t          j        |g|z            S )Nr   r   r  )tr   r<   s      r>   r  z+test_from_map_other_iterables.<locals>.func  s.    taxaDy!t$$$rP   )r   r   r   r   r   r   r   r   r   r   r   r   rj   )r7   r  r,   rB   r   r^   )r  r  r   r  s       r>   test_from_map_other_iterablesr    sl    % % %
 +dH
%
%CY&&&     F ckkmmV$$$$$rP   c                 R   g  G fdd          t          j                     t          g d          dd          } t          j        g ddgd	z  d
g d          }t          | d         |d                    t                    dhk    sJ t          | |           d S )Nc                  ,    e Zd ZddZ fdZfdZdS )/test_from_map_column_projection.<locals>.MyFuncNc                    || _         d S r   r   )selfr   s     r>   __init__z8test_from_map_column_projection.<locals>.MyFunc.__init__  s    "DLLLrP   c                     |          S r   rK   )r  r   MyFuncs     r>   project_columnsz?test_from_map_column_projection.<locals>.MyFunc.project_columns  s    6'??"rP   c                    |d         dz   }|d         }t          j        |g|z  dg|z  d          }| j        |S                     | j                   || j                 S )Nr   r   rJ   r  )r,   r-   r   extend)r  r  r   r<   r~   	projecteds        r>   __call__z8test_from_map_column_projection.<locals>.MyFunc.__call__  sl    Q4!8D!AQC$JbTD[AABBB|#	T\***dl##rP   r   )__name__
__module____qualname__r  r  r  )r  r  s   r>   r  r    s[        	# 	# 	# 	#	# 	# 	# 	# 	#	$ 	$ 	$ 	$ 	$ 	$ 	$rP   r  rV   myfuncT)r  r  )r   r   r   r   r   r   rJ   r'   r  r  rj   r   )r7   r  r  r,   r-   r   r   )r   r  r  r  s     @@r>   test_from_map_column_projectionr     s    
 I$ $ $ $ $ $ $ $ $ $ $  +)))	  C \###	
 	
 !    F c#hs$$$y>>cU""""c6rP   backendr0  r   c                b   t          j        |           }t          j        d| i          5  g dg dd}|                    |          }t          j        |d          }t          ||           |                    |d          }t          ||           d d d            d S # 1 swxY w Y   d S )Nzdataframe.backendr   )rJ   r  r     )r   r   r   r   )r1   r   r   r   r-   r7   	from_dictr   )r  _libr`  r   gotgot_classmethods         r>   test_from_dict_backendsr  4  s    w''D	('2	3	3 
- 
-!\\(8(8(899>>$'' l4Q///(C    --!-<<(O,,,
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
-s   A,B$$B(+B()g
__future__r   r   r/  r(   r0  r,   r1   ry   
dask.arrayr)   r   dask.dataframe	dataframer7   r   r  r   dask.dataframe._compatr   r   dask.dataframe.io.ior	   dask.dataframe.optimizer
   dask.dataframe.utilsr   r   r   dask.delayedr   r   dask.utils_testr   r?   rE   rR   re   rm   r   r   markparametrizer   r   r   r   r   NaTNAr   r   r   r   skipifr   r   r   gpur   r   r   r   r   r  r  r  r  r  r  r  r  r  r%  paramr+  r-  r;  rE  rM  rT  rY  r\  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rK   rP   r>   <module>r     s   " " " " " "                                   $ $ $ $ $ $ 4 4 4 4 4 4 4 4 1 1 1 1 1 1 , , , , , , U U U U U U U U U U ) ) ) ) ) ) ) ) 1 1 1 1 1 1! ! !00 0 0,5 5 5(3 3 3$< < <  6  0 lll++> > ,+>, , ,       0 bfbe'<==6 6 >=6, , ,      000000000 1 1 1 M        F M*?@@. . A@." 999iii"899$//  0/ :9 1 1 1
 
 
    " dE]33  434 4 4    ( ( (      	 	 		 	 	A A A, $\?33\?33\?33 . . .   *+  	  
"# # #LC C C*   aVTN33, , 43,(( ( ("P P PDD D D " " "0S S S" " "0( ( (  "+ + +*- - -2 
	$A		r2 6 67   <  	 	 	   % % %B  "* * *
 	///""&
 % % %$& & &R Xv$677- - 87 - - -rP   