
    CdX                       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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mZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 d d	l3m4Z4 d
 Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZId ZJd  ZKd! ZLd" ZMd# ZNd$ ZOd% ZPd& ZQd' ZRd( ZSd) ZTd* ZUd+ ZVd, ZWd- ZXd. ZYd/ ZZd0 Z[d1 Z\d2 Z]d3 Z^d4 Z_ej`        a                    d5g d6          d7             Zbd8 Zcd9 Zdd: Zed; Zfd< Zgd= Zhd> Zi G d? d@          ZjdA ZkdB ZldC ZmdD ZndE ZodF ZpdG ZqdS )H    )annotationsN)array)curry)get)HighLevelGraph)SubgraphCallable)"DispatchMSerializableLock_deprecated
asciitablecached_cumsumderived_fromensure_bytesensure_dict
ensure_setensure_unicodeextra_titlesformat_bytesformat_timefuncnameget_meta_library
getargspechas_keywordis_arraylike
itemgetteriter_chunksmemory_reprmethodcallerndeepmapparse_bytesparse_timedeltapartial_by_orderrandom_state_dataskip_doctest	stringifystringify_collection_keystakes_multiple_argumentstmpfiletypename)incc                     ddt          d          t          d          t          dd          g} | D ]0}t          |          }t	          |t
                    sJ |dk    sJ 1d S N   11B)
memoryview	bytearrayr   r   
isinstancebytesdatadresults      5lib/python3.11/site-packages/dask/tests/test_utils.pytest_ensure_bytesr:   6   ss    #z$''4%T:J:JKD  a&%(((((~~~~~     c                     t          j        d          } t          |                     d                    }t	          |t
                    sJ d S )Nnumpy   )pytestimportorskipr   aranger3   r4   )npr8   s     r9   test_ensure_bytes_ndarrayrC   >   sE    		W	%	%B"))B--((Ffe$$$$$$$r;   c                     t          j        d          } |                     d          }t          |          }t	          |t
                    sJ d S )Npyarrow   123)r?   r@   	py_bufferr   r3   r4   pabufr8   s      r9    test_ensure_bytes_pyarrow_bufferrK   D   sL    		Y	'	'B
,,v

C#Ffe$$$$$$$r;   c                     ddt          d          t          d          t          dd          g} | D ]0}t          |          }t	          |t
                    sJ |dk    sJ 1d S r-   )r1   r2   r   r   r3   strr5   s      r9   test_ensure_unicoderN   K   su    #z$''4%T:J:JKD  ""&#&&&&&}}}}} r;   c                     t          j        d          } |                     dd          }t          |          }t	          |t
                    sJ |dk    sJ d S )Nr=   rF   u1)dtype123)r?   r@   
frombufferr   r3   rM   )rB   ar8   s      r9   test_ensure_unicode_ndarrayrU   S   s[    		W	%	%B
fD))AAFfc"""""U??????r;   c                     t          j        d          } |                     d          }t          |          }t	          |t
                    sJ |dk    sJ d S )NrE   rF   rR   )r?   r@   rG   r   r3   rM   rH   s      r9   "test_ensure_unicode_pyarrow_bufferrW   [   sW    		Y	'	'B
,,v

CC  Ffc"""""U??????r;   c                 D   d } t          |           j        ddgk    sJ t          j        | d          }t          |          j        ddgk    sJ d }| |_        t          |          j        ddgk    sJ  G d d          }t          |          j        g dk    sJ d S )	Nc                    d S N )xys     r9   funcztest_getargspec.<locals>.funcd       r;   r\   r]      c                     d S rZ   r[   )argskwargss     r9   wrapperz test_getargspec.<locals>.wrapperm   r_   r;   c                      e Zd Zd ZdS )test_getargspec.<locals>.MyTypec                    d S rZ   r[   selfr\   r]   s      r9   __init__z(test_getargspec.<locals>.MyType.__init__t       Dr;   N__name__
__module____qualname__rj   r[   r;   r9   MyTyperf   s   #        	 	 	 	 	r;   rp   rh   )r   rb   	functoolspartial__wrapped__)r^   func2rd   rp   s       r9   test_getargspecrv   c   s       d S#J....dA&&Ee!c3Z////   Gg#Sz1111        f"&8&8&8888888r;   c                 t   t          t                    sJ t          t                    rJ d }  G d d          } G d d          }t          |           sJ t          |          rJ t          |          sJ d }t          |          rJ d }t          |          sJ t          |d	          rJ d S )
Nc                    | ||fS rZ   r[   rT   bcs      r9   multiz,test_takes_multiple_arguments.<locals>.multi~   s    !Qwr;   c                      e Zd Zd ZdS )/test_takes_multiple_arguments.<locals>.Singularc                    d S rZ   r[   )ri   rT   s     r9   rj   z8test_takes_multiple_arguments.<locals>.Singular.__init__   rk   r;   Nrl   r[   r;   r9   Singularr~      rq   r;   r   c                      e Zd Zd ZdS ),test_takes_multiple_arguments.<locals>.Multic                    d S rZ   r[   )ri   rT   rz   s      r9   rj   z5test_takes_multiple_arguments.<locals>.Multi.__init__   rk   r;   Nrl   r[   r;   r9   Multir      rq   r;   r   c                     d S rZ   r[   r[   r;   r9   fz(test_takes_multiple_arguments.<locals>.f   r_   r;   c                     d S rZ   r[   )rb   s    r9   varargz-test_takes_multiple_arguments.<locals>.vararg   r_   r;   F)varargs)r(   mapsum)r|   r   r   r   r   s        r9   test_takes_multiple_argumentsr   z   s0   #C(((((',,,,,                 $E*****'11111#E*****   (*****   $F+++++'>>>>>>>>r;   c                 D   t                                          t          d                                t          d                                t          fd           d }                     t
          |             G d d          } |            } d          dk    sJ                      t                    d          dk    sJ  d	          d
k    sJ  |          |k    sJ  dd|f          dd	|fk    sJ j        | j        k    sJ d S )Nc                    | dz   S N   r[   rT   s    r9   <lambda>ztest_dispatch.<locals>.<lambda>   s
    A r;   c                    | dz
  S r   r[   r   s    r9   r   ztest_dispatch.<locals>.<lambda>   s
    !a% r;   c                :    t          fd| D                       S )Nc              3  .   K   | ]} |          V  d S rZ   r[   ).0ifoos     r9   	<genexpr>z2test_dispatch.<locals>.<lambda>.<locals>.<genexpr>   s+      ':':1A':':':':':':r;   )tuple)rT   r   s    r9   r   ztest_dispatch.<locals>.<lambda>   s$    %':':':':':':':":": r;   c                    | S )zMy Docstringr[   r   s    r9   r   ztest_dispatch.<locals>.f   s    r;   c                      e Zd ZdS )test_dispatch.<locals>.BarNrm   rn   ro   r[   r;   r9   Barr              r;   r   r   r`         ?g               @)r	   registerintfloatr   objectdispatch__doc__)r   r   rz   r   s      @r9   test_dispatchr      sX   
**CLLoo&&&LL(((LL::::;;;   LL        	A3q66Q;;;;3<<Q1$$$$3s88s????3q66Q;;;;33{3{****;!)######r;   c                     t                      } |                     t          dd            | dd          dk    sJ d S )N
   c                    | |z   S rZ   r[   rT   rz   s     r9   r   z&test_dispatch_kwargs.<locals>.<lambda>   s
    a!e r;   r      )rz      )r   )r	   r   r   r   s    r9   test_dispatch_kwargsr      sI    
**CLL+++,,,3qB<<<2r;   c                     t                      } |                     t          d            |                     t          d             | dd          dk    sJ  | dd          dk    sJ d S )	Nc                    | |z   S rZ   r[   r   s     r9   r   z:test_dispatch_variadic_on_first_argument.<locals>.<lambda>   s
    1q5 r;   c                    | |z
  S rZ   r[   r   s     r9   r   z:test_dispatch_variadic_on_first_argument.<locals>.<lambda>   s
    QU r;   r   r`      r   r   )r	   r   r   r   r   s    r9   (test_dispatch_variadic_on_first_argumentr      ss    
**CLL(()))LL**+++3q!99>>>>3sC==Br;   c                 ~   t                                          t          d            dd l} d                     d          fd            }                    | j                  k    sJ  |                     d                    |                     d          k    sJ  d          dk    sJ d S )Nc                    | S rZ   r[   r   s    r9   r   z$test_dispatch_lazy.<locals>.<lambda>   s     r;   r   c                    | dz   S r   r[   r   s    r9   foo_decz#test_dispatch_lazy.<locals>.foo_dec   s    1ur;   decimalc                 F    dd l }                     | j                   d S )Nr   )r   r   Decimal)r   r   r   s    r9   register_decimalz,test_dispatch_lazy.<locals>.register_decimal   s(    W_g.....r;   r   r`   )r	   r   r   r   register_lazyr   r   )r   r   r   r   s     @@r9   test_dispatch_lazyr      s    
**CLLkk"""NNN   	y!!/ / / / / "!/ <<((G33333wq!!""gooa&8&888883q66Q;;;;;;r;   c                 T   ddl  G d dj                  }  G d d|           }t                                          |          d             }d                     d	          fd
            }                    |           k    sJ   | d                    dk    sJ                     j                  k    sJ                      d                    dk    sJ                     |          |k    sJ   |d                    dk    sJ dS )zvCheck that subclasses of classes with lazily registered handlers still
    use their parent class's handler by defaultr   Nc                      e Zd ZdS )*test_dispatch_lazy_walks_mro.<locals>.LazyNr   r[   r;   r9   Lazyr      r   r;   r   c                      e Zd ZdS )+test_dispatch_lazy_walks_mro.<locals>.EagerNr   r[   r;   r9   Eagerr      r   r;   r   c                    dS )Neagerr[   )r\   s    r9   eager_handlerz3test_dispatch_lazy_walks_mro.<locals>.eager_handler   s    wr;   c                    dS )Nlazyr[   r   s    r9   lazy_handlerz2test_dispatch_lazy_walks_mro.<locals>.lazy_handler   s    vr;   r   c                 >                          j                   d S rZ   )r   r   )r   r   r   s   r9   r   z6test_dispatch_lazy_walks_mro.<locals>.register_decimal   s    W_l33333r;   r   r   r   )r   r   r	   r   r   r   )r   r   r   r   r   r   r   s       @@@r9   test_dispatch_lazy_walks_mror      s    NNN    w           **C\\%     	y!!4 4 4 4 4 4 "!4 <<----3ttAww<<6!!!!<<((L88883wq!!""f,,,,<<-////3uuQxx==G######r;   c                    t          j        d          } d}| j                            |          }d}t	          ||          }t          |          |k    sJ t	          ||          }t          ||          D ],\  }}|j        dk    sJ ||k                                    sJ -t	          dd          }t	          dd          d d         }t          ||          D ]\  }}||k                                    sJ  d S )Nr=   %   i'  )ip  r   i  r   )	r?   r@   randomRandomStater$   lenzipshapeall)rB   seedstatenstatesstates2s1s2s           r9   test_random_state_datar      s$   		W	%	%BDI!!$''EA q$''Fv;;!  5))Gfg&&    Bx6!!!!b~~ r4((FD))#2#.Gfg&&    Bb~~   r;   c                 d    t          g d          D ]\  } }t          d| z            |k    sJ d S )N)z	1.0 bytesz1.0 KBz1.0 MBz1.0 GB   )	enumerater   )powermem_reprs     r9   test_memory_reprr     sN    $%P%P%PQQ 4 4x4;''8333334 4r;   c                    g d} t          d          } || d          |                     d          k    sJ t          d          |u sJ t          j        |u sJ t          j        t          j        |                    |u sJ dt          t                    v sJ dt          t          d                    v sJ dt          t          d                    v sJ d S )N)r   r`   r   r   r   countr   )	r   r   r
   pickleloadsdumpsdirrM   repr)rT   r   s     r9   test_method_callerr     s    AWA1Q77aggajj      A%%%%7a<<<<<Q((A----c!ffc,w//000000d<0011111111r;   c                     d} t          |           }|dk    sJ t          d           dk    sJ d} d}t          |           }||k    sJ d S )Nz!>>> xxx
>>>
>>> # comment
>>> xxxzE>>> xxx  # doctest: +SKIP
>>>
>>> # comment
>>> xxx  # doctest: +SKIP z"
>>> 1 + 2  # doctest: +ELLIPSES
3z)
>>> 1 + 2  # doctest: +ELLIPSES, +SKIP
3)r%   )exampleresexpecteds      r9   test_skip_doctestr   #  s}    G
 w

C	 	 	 	 ####GH w

C(??????r;   c                 8    d} d}t          |           |k    sJ d S )NzR

    Notes
    -----
    hello

    Foo
    ---

    Notes
    -----
    bar
    z^

    Notes
    -----
    hello

    Foo
    ---

    Extra Notes
    -----------
    bar
    )r   )r   r   s     r9   test_extra_titlesr   ?  s1    GH   H,,,,,,r;   c                 >    t          ddgg d          } | dk    sJ d S )Nfruitcolor))applered)bananayellow)tomator   )peargreenz+--------+--------+
| fruit  | color  |
+--------+--------+
| apple  | red    |
| banana | yellow |
| tomato | red    |
| pear   | green  |
+--------+--------+)r   )r   s    r9   test_asciitabler  _  sJ    
	'VVV C 		 	 	 	 	 	r;   c            	     <   t                      } t                      }| 5  	 d d d            n# 1 swxY w Y   | 5  |5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   | 5  |                     d          rJ 	 d d d            n# 1 swxY w Y   t          j        t          j        |                     }t          j        t          j        |                     }t          j        t          j        |                    }| |||fD ]=}| |||fD ]4}|5  |                    d          rJ 	 d d d            n# 1 swxY w Y   5>t          j        t          j        |                    }t          j        t          j        |                    }| |||fD ]t}|||fD ]l}|5  |5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |5  |5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   mud S )NF)r   acquirer   r   r   )	rT   rz   a2a3a4r\   r]   b2b3s	            r9   test_SerializableLockr	  p  s~   AA	
                 
   	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
 $ $99U######$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
fl1oo	&	&B	fl1oo	&	&B	fl2&&	'	'BR_ , ,RR 	, 	,A , ,99U++++++, , , , , , , , , , , , , , ,	, 
fl1oo	&	&B	fl2&&	'	'BR_  R 	 	A                                                                 		 s   -11A"AA"A	A"A	A""A&)A&/BBB#EEE2G5G	7GGG
GGG!G'H*G8	,H8G<<H?G< HHHc                     t          d          } t          d          }t          d          }t                      }| j        |j        usJ | j        |j        u sJ |j        | j        |j        |j        fvsJ d S )NrT   rz   )r   lock)rT   rz   r{   r7   s       r9   $test_SerializableLock_name_collisionr    s    AAAA66QV6!&!&!&1111111r;   c                     t          d          } |                                 rJ | 5  |                                 sJ 	 d d d            n# 1 swxY w Y   |                                 rJ d S )NrT   )r   lockedr   s    r9   test_SerializableLock_lockedr    s    Axxzz	
  xxzz              xxzzs   AAAc                     t          d          } |                     d          sJ |                     d          rJ |                                  d S )NrT   T)blockingF)r   r  releaser   s    r9   &test_SerializableLock_acquire_blockingr    sT    A99d9#####yy%y(((((IIKKKKKr;   c                 l   d } t          |           dk    sJ t          t          j        | d                    dk    sJ t          t          j                  dk    sJ t          d           dk    sJ  G d d	          }t          |          d	k    sJ d	t           |                      v sJ d S )
Nc                    d S rZ   r[   ry   s      r9   r   ztest_funcname.<locals>.foo  r_   r;   r   r   r   r   c                     dS r   r[   r[   r;   r9   r   ztest_funcname.<locals>.<lambda>  s    A r;   lambdac                      e Zd ZdS )test_funcname.<locals>.FooNr   r[   r;   r9   Foor    r   r;   r  )r   rr   rs   r
   r   )r   r  s     r9   test_funcnamer    s       C==E!!!!I%cQ///00E9999AE??e####II(****        C==E!!!!HSSUUOO######r;   c                 `    d } t          |           }d|v sJ t          |          dk     sJ d S )Nc                     d S rZ   r[   r[   r;   r9   Da_long_function_name_11111111111111111111111111111111111111111111111z`test_funcname_long.<locals>.a_long_function_name_11111111111111111111111111111111111111111111111  r_   r;   a_long_function_name<   )r   r   )r  r8   s     r9   test_funcname_longr!    sU       L F "V++++v;;r;   c                     t           d             } t          |           dk    sJ t           | d                    dk    sJ d S )Nc                    d S rZ   r[   ry   s      r9   r   z test_funcname_toolz.<locals>.foo      r;   r   r   )r   r   r   s    r9   test_funcname_toolzr%    s[    
  U C==E!!!!CCFFu$$$$$$r;   c                    t          j        d          } |                     t          t          t                    d             }t	          |          dk    sJ t	          t          j        |d                    dk    sJ d S )Nmultipledispatchc                    d S rZ   r[   ry   s      r9   r   z+test_funcname_multipledispatch.<locals>.foo  r$  r;   r   r   r   )r?   r@   r   r   r   rr   rs   )mdr   s     r9   test_funcname_multipledispatchr*    s    		/	0	0B[[c3    C==E!!!!I%cQ///00E999999r;   c                    t          j        d          } |                     t                    }t	          |          dk    sJ t          j        | j        d           }|                     |          }t	          |          dk    sJ d S )Nr=   vectorize_int)outvectorize_add)r?   r@   	vectorizer   r   rr   rs   add)rB   vfuncr^   s      r9   test_funcname_numpy_vectorizer2    s    		W	%	%BLLEE??o---- RV...DLLEE??o------r;   c                    d} t          dt          |           dk    sJ dg} t          dt          |           dk    sJ g d} t          dt          |           g dk    sJ ddgddgg} t          dt          |           ddgddggk    sJ ddgg d	gd
gg gg} t          dt          |           ddgg dgdgg ggk    sJ d S )Nr   r   r`   r   r`   r   )r`   r      r   r5     )r   r5  r6     )r5  r6  r7     )r    r+   )Ls    r9   test_ndeepmapr:    s   	AAsA!####	
AAsA!####		AAsA)))++++
Q!QAAsAAq6Aq6"22222a&)))	sBi(AAsAQFIII#6!b	"BBBBBBBr;   c                 L   ddi} t          |           | u sJ  G d dt                    }t          | d          }t          t          j        d|                     }t           ||                     }|||fD ](}t	          |          t          u sJ || usJ || k    sJ )d S )Nr\   r   c                      e Zd ZdS ) test_ensure_dict.<locals>.mydictNr   r[   r;   r9   mydictr=    r   r;   r>  Tcopy)r   dictr   from_collectionstype)r7   r>  d2d3d4dis         r9   test_ensure_dictrH    s    	aAq>>Q        
QT	"	"	"B	^4S!<<	=	=B	VVAYY		B2rl  Bxx4{{{{Qwwwww r;   c                    dh} t          |           | u sJ  G d dt                    }t          | d          }t           ||                     }||fD ](}t          |          t          u sJ || usJ || k    sJ )d S )Nr   c                      e Zd ZdS )test_ensure_set.<locals>.mysetNr   r[   r;   r9   mysetrK    r   r;   rL  Tr?  )r   setrC  )srL  r   s3sis        r9   test_ensure_setrQ    s    	
Aa==A        
AD	!	!	!B	EE!HH		B2h  Bxx3{{{{Qwwwww r;   c                    g d} t          d          } ||           dk    sJ t          j        t          j        |                    } ||           dk    sJ |j        dk    sJ t          d          t          d          k    sJ t          d          t          d          k    sJ t          d          dk    sJ d S )Nr4  r   r`   {   )r   r   r   r   index)r6   gg2s      r9   test_itemgetterrW    s    99D1A1T77a<<<<	fl1oo	&	&B2d88q====8q====a==JqMM))))a==JqMM))))a==Cr;   c                 L    t          dt          j        dg          dk    sJ d S )Nr6  )r   r   )functionother   )r#   operatorr0  r[   r;   r9   test_partial_by_orderr]  (  s,    AWIFFF"LLLLLLr;   c                     dd} t          | d          sJ t          | d          sJ t          | d          sJ t          j        | d          }t          |d          sJ t          |d          sJ d S )Nc                    d S rZ   r[   ry   s      r9   r   ztest_has_keyword.<locals>.foo-  r_   r;   rT   rz   r{   r   r   rZ   )r   rr   rs   )r   bars     r9   test_has_keywordra  ,  s        sC     sC     sC     

C1
%
%
%CsC     sC       r;   c                 :    G d d           G fdd          }  G fdd          }| j         j                                                            d          sJ d| j         j        v sJ t	          d	 | j         j                            d
          d d         D                       sJ d | j         j                            d
          D             \  }d|                                v sJ d|                                v sJ d|j         j        v sJ d S )Nc                      e Zd Zd ZdS )test_derived_from.<locals>.Fooc                    dS )zA super docstring

            An explanation

            Parameters
            ----------
            a: int
                an explanation of a
            b: float
                an explanation of b
            Nr[   r   s     r9   r   z test_derived_from.<locals>.Foo.f;  s      r;   N)rm   rn   ro   r   r[   r;   r9   r  rd  :  s#        	 	 	 	 	r;   r  c                  8    e Zd Z e           d             ZdS )test_derived_from.<locals>.Barc                    d S rZ   r[   rT   r{   s     r9   r   z test_derived_from.<locals>.Bar.fI  s    Dr;   Nrm   rn   ro   r   r   r  s   r9   r   rg  H  s9        	c			 	 
		 	 	r;   r   c                  8    e Zd Z e           d             ZdS )test_derived_from.<locals>.Zapc                    dS zextra docstringNr[   ri  s     r9   r   z test_derived_from.<locals>.Zap.fN  s	     Dr;   Nrj  rk  s   r9   Zaprm  M  s9        	c			 	 
		 	 	r;   rp  zA super docstringzFoo.fc              3     K   | ]}d |v V  	dS )inconsistenciesNr[   r   lines     r9   r   z$test_derived_from.<locals>.<genexpr>U  s(      SST D(SSSSSSr;   
r8  c                    g | ]}d |v |	S )zb:r[   rs  s     r9   
<listcomp>z%test_derived_from.<locals>.<listcomp>W  s    JJJTT\\t\\\r;   not supporteddaskz  extra docstring

)r   r   strip
startswithanysplitlower)r   rp  b_argr  s      @r9   test_derived_fromr  9  s                   
          5=  ++,?@@@@@cem####SSSU]5H5H5N5NrPQr5RSSSSSSSSJJ 3 3D 9 9JJJGUekkmm++++U[[]]"""""cem333333r;   c                     dd l } t          |           d             }d|j        v sJ d|j        v sJ d|j        v sJ d S )Nr   c                     dS ro  r[   r[   r;   r9   r   z#test_derived_from_func.<locals>.suma  s	     	r;   zextra docstring

zReturn the sum ofz+This docstring was copied from builtins.sum)builtinsr   r   )r  r   s     r9   test_derived_from_funcr  ^  sn    OOO(   !CK////#+----8CKGGGGGGr;   c                 B   t          j        d          } d| j        j        j        v sJ d | j        j        j                            d          D             \  }d|                                v sJ d|                                v sJ d| j        j        j        v sJ d S )Ndask.dataframerr  c                    g | ]}d |v |	S )zaxis :r[   rs  s     r9   rw  z4test_derived_from_dask_dataframe.<locals>.<listcomp>p  s*       HPTDTDTDTDTDTr;   ru  rx  ry  z!Object with missing values filled)r?   r@   	DataFramedropnar   r}  r~  ffill)ddaxis_args     r9    test_derived_from_dask_dataframer  k  s    		-	.	.B 3 ;;;;; ,4::4@@  JX hnn......X^^%%%%%%.",2D2LLLLLLLr;   c                    t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          d	k    sJ t          d
          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ d S )N100d   z100 MBi 100M5kBi  z5.4 kBi  1kiBr   1Mii   1e6i@B z1e6 kBi ʚ;MBrS  z.5GBi e)r!   r[   r;   r9   test_parse_bytesr  y  s4   u$$$$x  I----v)++++u%%%%x  D((((v$&&&&u&&&&u((((x  J....t''''ss""""v)++++++r;   c                 \   ddddddddd	d
ddddddt          j        d          dft          j        d          dffD ]2\  } }t          |           }||k    st          ||z
            dk     sJ 3t          dd          dk    sJ t          dd          dk    sJ t          dd          dk    sJ t          dd          dk    sJ t          dd          dk    sJ t	          j        t                    5  t          dd           d d d            n# 1 swxY w Y   t	          j        t                    5  t          dd           d d d            n# 1 swxY w Y   t	          j        t                    5  t          dd            d d d            d S # 1 swxY w Y   d S )N)1sr   )100ms皙?)5Sr6  )z5.5s      @)z5.5 sr  )z1 secondr   )z3.3 secondsgffffff
@)z3.3 millisecondsgF%uk?)z3500 usgy&1l?)z1 nsg&.>)2mx   )z5 daysi )z2 wi u )z	2 minutesr  )NN)r   r   r`   )secondsr  )millisecondsr  g+=1msr  )defaultgMbP?r/   r   msF)datetime	timedeltar"   absr?   raises
ValueError	TypeError)textvaluer8   s      r9   test_parse_timedeltar    s   $$%		A	&	&	&*			-	-	-s3% > >e( !&&#fun"5"5"="="="=5)444====3	222a77773---66661d+++u44445%000E9999	z	"	" * *5))))* * * * * * * * * * * * * * *	z	"	" , ,U++++, , , , , , , , , , , , , , ,	y	!	! + +T****+ + + + + + + + + + + + + + + + + +s6   >DD #D  EE"%E"F!!F%(F%c                    t          j        d          } t          d          du sJ t          d          du sJ t          d          du sJ t          g           du sJ t          dg          du sJ t          |                     d                    du sJ t          |                     d                    du sJ t          |                     d                    du sJ d S )Nr=   r   Fr[   T)r   )r   r   )r?   r@   r   empty)rB   s    r9   test_is_arrayliker    s    		W	%	%B??e####u$$$$??e####u$$$$%%%%%%----''4////(())T111111r;   c                 $   g d} t          t          | d                    dgddgddgddgdgdgdggk    sJ t          t          | d	                    g d
g dddgdggk    sJ t          t          | d                    g dg dgk    sJ d S )N)
      r6  	   r8  r  r      r  r  r  r  r  r6  r  r8  r      )r  r  r6  )r  r8  r  r   C   )r  r  r6  r  r8  r  r   )r  r  r  )listr   )sizess    r9   test_iter_chunksr    s    ---EE2&&''		
A	
A	
A		
	,     E2&&''JJJr1gPRt+TTTTTE2&&'',B,B,BKKK+PPPPPPPr;   c                 N   d} t          |           | u sJ d} t          |           | u sJ ddit                    t                    k    sJ t          d          k    sJ dt          dfit                    t          dt          dfi          k    sJ t          d          dt          dfik    sJ t          dft          dfdt                    t          dft          t          d          fdk    sJ ddit          dft          dfdt          g d	ft          ddgfdg}|D ]|fd
                                D             }t                    }d |D             }t          d |D                       sJ t          |          t          ||          k    sJ }dt          ddidd          dfit          t                    dhz            d         d         j
        d         dk    sJ d         d         d         dk    sJ d S )NHellos   Hellor\   r   r[   	exclusiver\   r   )r  )r\   r`   r4  c                T    i | ]$\  }}t          |          t          |           %S )r  )r&   )r   kvdsks      r9   
<dictcomp>z"test_stringify.<locals>.<dictcomp>  s2    RRRda	!iS999RRRr;   c                ,    g | ]}t          |          S r[   )rM   r   r  s     r9   rw  z"test_stringify.<locals>.<listcomp>  s    &&&AQ&&&r;   c              3  @   K   | ]}t          |t                    V  d S rZ   )r3   rM   r  s     r9   r   z!test_stringify.<locals>.<genexpr>  s,      44!:a%%444444r;   r]   r   )r  )zr   r  r   z('y', 1)z('z', 1))r&   rM   r+   r   itemsr  r   r   r   rM  r  )objdskssdskkeysskeysr  s        @r9   test_stringifyr    s   
CS>>S    
CS>>S    (CS>>SXX%%%%SB'''3....c1X
CS>>S(S!H!5666666SB'''HsAh+?????1X#x
9
9CSC((((H&- -     
a8X77#h5I/JKKD
  2 2RRRRciikkRRRCyy&&&&&44t444444443~~T5!1!111111&X[II;W
XC
C3s88xj#8
9
9
9Cx=$
2222x=A*,,,,,,r;   c                    d} t          |           | u sJ g d} t          |           }|d         t          | d                   k    sJ |d         t          | d                   k    sJ |d         | d         k    sJ d S )Nr  ))rT   r   )   ar   )r   r   r   r   r`   )r'   rM   )r  r   s     r9   test_stringify_collection_keysr    s    
C$S))S0000
'
'
'C
#C
(
(Cq6SQ[[    q6SQ[[    q6SVr;   zn,expect))r   z0 B)i  z920 B)i  z0.91 kiB)gp=
,Az
921.23 kiB)gp=
-Az0.91 MiB)gp=
Az
921.23 MiB)gp=
Az0.91 GiB)gp=
lBz
921.23 GiB)gp=
mBz0.91 TiB)gp=
Cz
921.23 TiB)gp=
Cz0.91 PiB)l            z1024.00 PiBc                J    t          t          |                     |k    sJ d S rZ   )r   r   )r   expects     r9   test_format_bytesr    s)    $ A6))))))r;   c                    t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d	          d
k    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ d S )Ngffffff?z1.40 sg$@z10.40 sgY@z100.40 sg33333C@z16m 40sg33333@z2hr 46mgT㥛DJ@z20m 34sg)\@z3hr 25mgGz$@z34hr 17mġ2Az14d 6hr)r   r[   r;   r9   test_format_timer    s    sx''''t	))))u++++v)++++w9,,,,x  I----x  I----y!!Z////y!!Y......r;   c                 .   t                      d             } t          j        t                    5 } |             dk    sJ 	 d d d            n# 1 swxY w Y   t	          |          dk    sJ t          |d         j                  }d|v sJ d|v sJ d S )Nc                     dS Nr`  r[   r[   r;   r9   r   ztest_deprecated.<locals>.foo      ur;   r`  r   r   zfoo is deprecatedzremoved in a future releaser   r?   warnsFutureWarningr   rM   message)r   recordmsgs      r9   test_deprecatedr    s    ]]  ] 
m	$	$ suu~~~~~               v;;!
fQi
 
 C#%%%%(C//////s   AAAc                     t          d          d             } t          j        t          d          5   |             dk    sJ 	 d d d            d S # 1 swxY w Y   d S )N1.2.3)versionc                     dS r  r[   r[   r;   r9   r   z$test_deprecated_version.<locals>.foo,  r  r;   zdeprecated in version 1.2.3matchr`  r   r?   r  r  r   s    r9   test_deprecated_versionr  +  s    !!!  "! 
m+H	I	I	I  suu~~~~~                    AAAc                     t          d          d             } t          j        t          d          5   |             dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  )after_versionc                     dS r  r[   r[   r;   r9   r   z*test_deprecated_after_version.<locals>.foo5  r  r;   zdeprecated after version 1.2.3r  r`  r  r   s    r9   test_deprecated_after_versionr  4  s    w'''  (' 
m+K	L	L	L  suu~~~~~                 r  c                     t          t                    d             } t          j        t                    5   |             dk    sJ 	 d d d            d S # 1 swxY w Y   d S )N)categoryc                     dS r  r[   r[   r;   r9   r   z%test_deprecated_category.<locals>.foo>  r  r;   r`  )r   DeprecationWarningr?   r  r   s    r9   test_deprecated_categoryr  =  s    ,---  .- 
(	)	)  suu~~~~~                 s   AAAc                 &   t          d          d             } t          j        t                    5 } |             dk    sJ 	 d d d            n# 1 swxY w Y   t	          |          dk    sJ t          |d         j                  dk    sJ d S )Nwoohoo)r  c                     dS r  r[   r[   r;   r9   r   z$test_deprecated_message.<locals>.fooG  r  r;   r`  r   r   r  )r   r  s     r9   test_deprecated_messager  F  s    """  #" 
m	$	$ suu~~~~~               v;;!vay !!X------s   AAAc                 r    t          t                    dk    sJ t          t          d          dk    sJ d S )Nz"dask.highlevelgraph.HighLevelGraphT)shortzdask.HighLevelGraph)r*   r   r[   r;   r9   test_typenamer  R  sA    N##'KKKKKN$///3HHHHHHHr;   c                      e Zd ZdS )rp   Nr   r[   r;   r9   rp   rp   W  s        Dr;   rp   c                 p    t                      } t          |           t          t                     k    sJ d S rZ   )rp   r*   )instances    r9   test_typename_on_instancesr  [  s2    xxHH&!1!1111111r;   c                 j    d} t          |           }t          | d          }|dk    sJ |dk    sJ d S )N)r   r`   r   r5  Tinitial_zero)r   r   r7  r   )r   r   r   r7  r   r   )rT   r\   r]   s      r9   test_cached_cumsumr  `  sO    AaAad+++A       r;   c                 $   t          j        d          } d| j        df}t          |          }t          |d          }| j                            |d| j        | j        f           | j                            |dd| j        | j        f           d S )Nr=   r   r   Tr  r   )r?   r@   nanr   testingassert_equal)rB   rT   r\   r]   s       r9   test_cached_cumsum_nanr  h  s    		W	%	%B	
BFAAaAad+++AJA26262333JA1bfbf566666r;   c                 l    g d} t          |           dk    sJ d| d<   t          |           dk    sJ d S )Nr4  )r   r   r7  r5  r   )r   r6  r  r  r   s    r9   test_cached_cumsum_non_tupler  q  sL    		Ay((((AaDy((((((r;   c                 r   t                      5 } | d         dk    sJ 	 d d d            n# 1 swxY w Y   t          d          5 } | dd          dk    sJ 	 d d d            n# 1 swxY w Y   t          d          5 } | dd          dk    sJ | d         dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   .jpg)	extensionz.jpg)r)   )fns    r9   test_tmpfile_namingr  x  s   	 b "v}}}}}              
 
5	!	!	! !R"##w&     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
6	"	"	" b"##w&    "v}}}}}                 s0   +//A$$A(+A(?B,,B03B0c                 L   t          j        d          } t          j        d          }t          j        d          }t          j        d          }t          |                                          |k    sJ t          |                     g                     | k    sJ t          |                                          t          |j                  k    sJ t          |                     g                     t          | j                  k    sJ t          |                                          t          |                    i d                    k    sJ t          |                     g                     t          |                    g                     k    sJ d S )Nr=   pandas
dask.arrayr  r   npartitions)r?   r@   r   r  r   ndarray	from_dict
from_array)rB   pddar  s       r9   test_get_meta_libraryr     sh   		W	%	%B		X	&	&B		\	*	*B		-	.	.BBLLNN++r1111BHHRLL))R////BLLNN++/?/M/MMMMMBJJrNN++/?
/K/KKKKKBLLNN++/?
RQ''0 0     BJJrNN++/?b@Q@Q/R/RRRRRRRr;   c                    t          j        d          } t          j        d          }t          j        d          }t          j        d          }t          |                                          |k    sJ t          |                     g                     | k    sJ t          |                                          t          |j                  k    sJ t          |                     g                     t          | j                  k    sJ t          |                                          t          |                    i d                              d                    k    sJ t          |                     g                     t          |                    g                               d                    k    sJ d S )Ncupycudfr  r  r   r  )	r?   r@   r   r  r   r  r  
to_backendr  )cpr#  r  r  s       r9   test_get_meta_library_gpur&    s   		V	$	$Bv&&D		\	*	*B		-	.	.BDNN,,--5555BHHRLL))R////DNN,,--1A$.1Q1QQQQQBJJrNN++/?
/K/KKKKKDNN,,--1A
RQ''226::2 2     BJJrNN++/?
b$$V,,0 0      r;   )r
__future__r   r  rr   r\  r   r   r?   tlzr   ry  r   dask.highlevelgraphr   dask.optimizationr   
dask.utilsr	   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$   r%   r&   r'   r(   r)   r*   dask.utils_testr+   r:   rC   rK   rN   rU   rW   rv   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r!  r%  r*  r2  r:  rH  rQ  rW  r]  ra  r  r  r  r  r  r  r  r  r  markparametrizer  r  r  r  r  r  r  r  rp   r  r  r  r  r  r   r&  r[   r;   r9   <module>r/     s   " " " " " "                           . . . . . . . . . . . .# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #H         % % %% % %      9 9 9.? ? ?>$ $ $2      .$ $ $@     04 4 4

2 
2 
2  8- - -@  "     F2 2 2    $ $ $   % % %: : :
. 
. 
.C C C"  "   
  
  
 M M M
! 
! 
!"4 "4 "4J
H 
H 
HM M M, , ,#+ #+ #+L2 2 2Q Q Q#- #- #-L      "* *# "*	/ 	/ 	/0 0 0      	. 	. 	.I I I
	 	 	 	 	 	 	 	2 2 2
! ! !7 7 7) ) )  S S S$    r;   