o
    Nrf{\                     @  s$  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
d Z5dd Z6dd Z7dd Z8dd Z9dd Z:dd Z;dd Z<dd Z=dd Z>dd Z?d d! Z@d"d# ZAd$d% ZBd&d' ZCd(d) ZDd*d+ ZEd,d- ZFd.d/ ZGd0d1 ZHd2d3 ZId4d5 ZJd6d7 ZKd8d9 ZLd:d; ZMd<d= ZNd>d? ZOd@dA ZPdBdC ZQdDdE ZRdFdG ZSdHdI ZTdJdK ZUdLdM ZVdNdO ZWejXjYdPeZej[gdQdRgdSdTdU Z\dVdW Z]dXdY Z^dZd[ Z_d\d] Z`d^d_ Zad`da Zbdbdc Zcddde ZdejXYdfg dgdhdi Zedjdk Zfdldm Zgdndo Zhdpdq Zidrds Zjdtdu Zkdvdw ZlG dxdy dyZmdzd{ Znd|d} Zod~d Zpdd Zqdd Zrdd Zsdd ZtdS )    )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                  C  sL   ddt dtdtddg} | D ]}t|}t|tsJ |dks#J qd S N   11B)
memoryview	bytearrayr   r   
isinstancebytesdatadresult r7   ^/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/dask/tests/test_utils.pytest_ensure_bytes6      r9   c                  C  s*   t d} t| d}t|tsJ d S )Nnumpy   )pytestimportorskipr   Zaranger1   r2   )npr6   r7   r7   r8   test_ensure_bytes_ndarray>   s   
r@   c                  C  s.   t d} | d}t|}t|tsJ d S )Npyarrow   123)r=   r>   	py_bufferr   r1   r2   pabufr6   r7   r7   r8    test_ensure_bytes_pyarrow_bufferD   s   

rG   c                  C  sL   ddt dtdtddg} | D ]}t|}t|tsJ |dks#J qd S r+   )r/   r0   r   r   r1   strr3   r7   r7   r8   test_ensure_unicodeK   r:   rI   c                  C  s>   t d} | jddd}t|}t|tsJ |dksJ d S )Nr;   rB   u1)Zdtype123)r=   r>   Z
frombufferr   r1   rH   )r?   ar6   r7   r7   r8   test_ensure_unicode_ndarrayS   s
   
rM   c                  C  s:   t d} | d}t|}t|tsJ |dksJ d S )NrA   rB   rK   )r=   r>   rC   r   r1   rH   rD   r7   r7   r8   "test_ensure_unicode_pyarrow_buffer[   s
   

rN   c                  C  s   dd } t | jddgksJ t| d}t |jddgks J dd }| |_t |jddgks2J G dd	 d	}t |jg d
ksDJ d S )Nc                 S     d S Nr7   )xyr7   r7   r8   funcd      ztest_getargspec.<locals>.funcrQ   rR      c                  _  rO   rP   r7   )argskwargsr7   r7   r8   wrapperm   rT   z test_getargspec.<locals>.wrapperc                   @     e Zd Zdd ZdS )ztest_getargspec.<locals>.MyTypec                 S  rO   rP   r7   selfrQ   rR   r7   r7   r8   __init__t   rT   z(test_getargspec.<locals>.MyType.__init__N__name__
__module____qualname__r\   r7   r7   r7   r8   MyTypes       ra   rZ   )r   rV   	functoolspartial__wrapped__)rS   Zfunc2rX   ra   r7   r7   r8   test_getargspecc   s   rf   c                  C  s   t tsJ t trJ dd } G dd d}G dd d}t | s$J t |r*J t |s0J dd }t |r:J d	d
 }t |sDJ t |ddrLJ d S )Nc                 S  s
   | ||fS rP   r7   rL   bcr7   r7   r8   multi~   s   
z,test_takes_multiple_arguments.<locals>.multic                   @  rY   )z/test_takes_multiple_arguments.<locals>.Singularc                 S  rO   rP   r7   )r[   rL   r7   r7   r8   r\      rT   z8test_takes_multiple_arguments.<locals>.Singular.__init__Nr]   r7   r7   r7   r8   Singular   rb   rk   c                   @  rY   )z,test_takes_multiple_arguments.<locals>.Multic                 S  rO   rP   r7   )r[   rL   rh   r7   r7   r8   r\      rT   z5test_takes_multiple_arguments.<locals>.Multi.__init__Nr]   r7   r7   r7   r8   Multi   rb   rl   c                   S  rO   rP   r7   r7   r7   r7   r8   f   rT   z(test_takes_multiple_arguments.<locals>.fc                  W  rO   rP   r7   )rV   r7   r7   r8   vararg   rT   z-test_takes_multiple_arguments.<locals>.varargF)varargs)r'   mapsum)rj   rk   rl   rm   rn   r7   r7   r8   test_takes_multiple_argumentsz   s   rr   c                    s   t    tdd   tdd   t fdd dd }  t|  G dd d}| } d	d
ks9J  td	d
ksDJ  ddksLJ  ||ksTJ  d	d|fd
d|fksbJ  j| jksjJ d S )Nc                 S     | d S N   r7   rL   r7   r7   r8   <lambda>       ztest_dispatch.<locals>.<lambda>c                 S  s   | d S rt   r7   rv   r7   r7   r8   rw      rx   c                   s   t  fdd| D S )Nc                 3  s    | ]} |V  qd S rP   r7   ).0ifoor7   r8   	<genexpr>       z2test_dispatch.<locals>.<lambda>.<locals>.<genexpr>)tuplerv   r{   r7   r8   rw      s    c                 S     | S )zMy Docstringr7   rv   r7   r7   r8   rm         ztest_dispatch.<locals>.fc                   @     e Zd ZdS )ztest_dispatch.<locals>.BarNr^   r_   r`   r7   r7   r7   r8   Bar       r   ru   rU         ?g               @)r   registerintfloatr   objectdispatch__doc__)rm   r   rh   r7   r{   r8   test_dispatch   s   r   c                  C  s0   t  } | tddd | ddddksJ d S )	N
   c                 S     | | S rP   r7   rL   rh   r7   r7   r8   rw      rx   z&test_dispatch_kwargs.<locals>.<lambda>ru      )rh      )r   )r   r   r   r{   r7   r7   r8   test_dispatch_kwargs   s   r   c                  C  sN   t  } | tdd  | tdd  | dddksJ | ddd	ks%J d S )
Nc                 S  r   rP   r7   r   r7   r7   r8   rw      rx   z:test_dispatch_variadic_on_first_argument.<locals>.<lambda>c                 S  s   | | S rP   r7   r   r7   r7   r8   rw      rx   ru   rU      r   r   )r   r   r   r   r{   r7   r7   r8   (test_dispatch_variadic_on_first_argument   s
   r   c                    s   t    tdd  dd l} dd  d fdd} | jks)J  | d	| d
ks7J  d	d	ks?J d S )Nc                 S  r   rP   r7   rv   r7   r7   r8   rw          z$test_dispatch_lazy.<locals>.<lambda>r   c                 S  rs   rt   r7   rv   r7   r7   r8   foo_dec   s   z#test_dispatch_lazy.<locals>.foo_decdecimalc                    s   dd l }  | j d S )Nr   )r   r   Decimal)r   r|   r   r7   r8   register_decimal   s   z,test_dispatch_lazy.<locals>.register_decimalru   rU   )r   r   r   r   register_lazyr   r   )r   r   r7   r   r8   test_dispatch_lazy   s   r   c                    s   ddl  G dd d j} G dd d| }t |dd }d	d
 d fdd}| ks;J | ddksEJ  jksOJ  ddksZJ ||kscJ |ddksmJ dS )zvCheck that subclasses of classes with lazily registered handlers still
    use their parent class's handler by defaultr   Nc                   @  r   )z*test_dispatch_lazy_walks_mro.<locals>.LazyNr   r7   r7   r7   r8   Lazy   r   r   c                   @  r   )z+test_dispatch_lazy_walks_mro.<locals>.EagerNr   r7   r7   r7   r8   Eager   r   r   c                 S     dS )Neagerr7   )rQ   r7   r7   r8   eager_handler   r   z3test_dispatch_lazy_walks_mro.<locals>.eager_handlerc                 S  r   )Nlazyr7   rv   r7   r7   r8   lazy_handler   rT   z2test_dispatch_lazy_walks_mro.<locals>.lazy_handlerr   c                     s     j d S rP   )r   r   r7   r   r|   r   r7   r8   r      s   z6test_dispatch_lazy_walks_mro.<locals>.register_decimalru   r   r   )r   r   r   r   r   r   )r   r   r   r   r7   r   r8   test_dispatch_lazy_walks_mro   s   
r   c                  C  s   t d} d}| j|}d}t||}t||ksJ t||}t||D ]\}}|jdks1J ||k s9J q&tdd}tddd d }t||D ]\}}||k sYJ qMd S )Nr;   %   i'  )ip  r   i  r   )	r=   r>   randomZRandomStater#   lenzipshapeall)r?   seedstatenZstatesZstates2s1s2r7   r7   r8   test_random_state_data   s   



r   c                  C  s.   t g dD ]\} }td|  |ksJ qd S )N)z	1.0 bytesz1.0 KBz1.0 MBz1.0 GB   )	enumerater   )powerZmem_reprr7   r7   r8   test_memory_repr  s   r   c                  C  s   g d} t d}|| d| dksJ t d|u sJ tj|u s#J tt||u s/J dttv s7J dtt dv sAJ dtt dv sKJ d S )N)ru   rU   r   r   r   countr   )	r   r   r	   pickleloadsdumpsdirrH   repr)rL   rm   r7   r7   r8   test_method_caller  s   r   c                  C  sH   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expectedr7   r7   r8   test_skip_doctest#  s   r   c                  C  s   d} d}t | |ksJ d S )NzR

    Notes
    -----
    hello

    Foo
    ---

    Notes
    -----
    bar
    z^

    Notes
    -----
    hello

    Foo
    ---

    Extra Notes
    -----------
    bar
    )r   )r   r   r7   r7   r8   test_extra_titles?  s   r   c                  C  s"   t ddgg d} | dksJ d S )NZfruitcolor))applered)bananayellow)tomator   )peargreenz+--------+--------+
| fruit  | color  |
+--------+--------+
| apple  | red    |
| banana | yellow |
| tomato | red    |
| pear   | green  |
+--------+--------+)r   )r   r7   r7   r8   test_asciitable_  s   r   c            	      C  s  t  } t  }|  W d    n1 sw   Y  |  | W d    n1 s(w   Y  W d    n1 s7w   Y  |  | drFJ W d    n1 sPw   Y  tt| }tt| }tt|}| |||fD ]$}| |||fD ]}| |drJ W d    n1 sw   Y  q{qstt|}tt|}| |||fD ]R}|||fD ]J}| | W d    n1 sw   Y  W d    n1 sw   Y  | | W d    n1 sw   Y  W d    n1 sw   Y  qqd S )NF)r
   acquirer   r   r   )	rL   rh   Za2a3Za4rQ   rR   b2Zb3r7   r7   r8   test_SerializableLockp  sV   r   c                  C  s\   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 )NrL   rh   )r
   lock)rL   rh   ri   r5   r7   r7   r8   $test_SerializableLock_name_collision  s   r   c                  C  sT   t d} |  r
J |  |  sJ W d    n1 sw   Y  |  r(J d S )NrL   )r
   lockedrv   r7   r7   r8   test_SerializableLock_locked  s   r   c                  C  s4   t d} | jddsJ | jddrJ |   d S )NrL   T)blockingF)r
   r   releaserv   r7   r7   r8   &test_SerializableLock_acquire_blocking  s   r   c                  C  s   dd } t | dksJ t tj| dddksJ t tjdks"J t dd d	ks,J G d
d d}t |dks;J dt | v sDJ d S )Nc                 S  rO   rP   r7   rg   r7   r7   r8   r|     rT   ztest_funcname.<locals>.foor|   ru   rv   rq   c                   S  r   rt   r7   r7   r7   r7   r8   rw     r   ztest_funcname.<locals>.<lambda>lambdac                   @  r   )ztest_funcname.<locals>.FooNr   r7   r7   r7   r8   Foo  r   r   )r   rc   rd   r	   rq   )r|   r   r7   r7   r8   test_funcname  s   r   c                  C  s0   dd } t | }d|v sJ t|dk sJ d S )Nc                   S  rO   rP   r7   r7   r7   r7   r8   Da_long_function_name_11111111111111111111111111111111111111111111111  rT   z`test_funcname_long.<locals>.a_long_function_name_11111111111111111111111111111111111111111111111Za_long_function_name<   )r   r   )r   r6   r7   r7   r8   test_funcname_long  s   r   c                  C  s4   t dd } t| dksJ t| ddksJ d S )Nc                 S  rO   rP   r7   rg   r7   r7   r8   r|     r   z test_funcname_toolz.<locals>.foor|   ru   )r   r   r{   r7   r7   r8   test_funcname_toolz  s   
r   c                  C  sN   t d} | tttdd }t|dksJ ttj|dddks%J d S )NZmultipledispatchc                 S  rO   rP   r7   rg   r7   r7   r8   r|     r   z+test_funcname_multipledispatch.<locals>.foor|   ru   rv   )r=   r>   r   r   r   rc   rd   )mdr|   r7   r7   r8   test_funcname_multipledispatch  s
   

r   c                  C  sR   t d} | t}t|dksJ tj| jd d}| |}t|dks'J d S )Nr;   Zvectorize_int)outZvectorize_add)r=   r>   Z	vectorizer   r   rc   rd   add)r?   ZvfuncrS   r7   r7   r8   test_funcname_numpy_vectorize  s   


r   c                  C  s   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sAJ 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scJ d S )Nru   r   rU   ru   rU   r   )rU   r      r   r      )r   r   r      )r   r   r      )r   r*   )Lr7   r7   r8   test_ndeepmap  s    .r   c                  C  s   ddi} t | | u sJ G dd dt}t | dd}t td| }t || }|||fD ]}t|tu s7J || us=J || ksCJ q-d S )NrQ   ru   c                   @  r   )z test_ensure_dict.<locals>.mydictNr   r7   r7   r7   r8   mydict  r   r   Tcopy)r   dictr   Zfrom_collectionstype)r5   r   Zd2Zd3Zd4Zdir7   r7   r8   test_ensure_dict  s   r   c                  C  sx   dh} t | | u sJ G dd dt}t | dd}t || }||fD ]}t|tu s-J || us3J || ks9J q#d S )Nru   c                   @  r   )ztest_ensure_set.<locals>.mysetNr   r7   r7   r7   r8   myset  r   r   Tr   )r   setr   )sr   r   Zs3sir7   r7   r8   test_ensure_set  s   r   c                  C  s   g d} t d}|| dksJ tt|}|| dks J |jdks'J t dt dks1J t dt dks;J t ddksCJ d S )Nr   ru   rU   {   )r   r   r   r   index)r4   gg2r7   r7   r8   test_itemgetter  s   r   c                   C  s   t dtjdgddksJ d S )Nr   )ru   r   )functionother   )r"   operatorr   r7   r7   r7   r8   test_partial_by_order(  s   r  c                  C  sb   ddd} t | dsJ t | dsJ t | dsJ tj| dd}t |ds(J t |ds/J d S )	Nc                 S  rO   rP   r7   rg   r7   r7   r8   r|   -  rT   ztest_has_keyword.<locals>.foorL   rh   ri   ru   rv   rP   )r   rc   rd   )r|   barr7   r7   r8   test_has_keyword,  s   
r  c                    s   G dd d G  fddd} G  fddd}| j j ds$J d| j jv s,J td	d
 | j jdd d D s@J dd | j jdD \}d| v sUJ d| v s]J d|j jv seJ d S )Nc                   @  rY   )ztest_derived_from.<locals>.Fooc                 S  r   )zA super docstring

            An explanation

            Parameters
            ----------
            a: int
                an explanation of a
            b: float
                an explanation of b
            Nr7   r   r7   r7   r8   rm   ;  r   z test_derived_from.<locals>.Foo.fN)r^   r_   r`   rm   r7   r7   r7   r8   r   :  rb   r   c                         e Zd Ze dd ZdS )ztest_derived_from.<locals>.Barc                 S  rO   rP   r7   rL   ri   r7   r7   r8   rm   I  r   z test_derived_from.<locals>.Bar.fNr^   r_   r`   r   rm   r7   r   r7   r8   r   H      r   c                      r  )ztest_derived_from.<locals>.Zapc                 S  r   zextra docstringNr7   r  r7   r7   r8   rm   N     z test_derived_from.<locals>.Zap.fNr  r7   r  r7   r8   ZapM  r  r  zA super docstringzFoo.fc                 s      | ]}d |v V  qdS inconsistenciesNr7   ry   liner7   r7   r8   r}   U  r~   z$test_derived_from.<locals>.<genexpr>
r   c                 S     g | ]}d |v r|qS )zb:r7   r  r7   r7   r8   
<listcomp>W  s    z%test_derived_from.<locals>.<listcomp>not supporteddaskz  extra docstring

)rm   r   strip
startswithanysplitlower)r   r  Zb_argr7   r  r8   test_derived_from9  s   (r  	decoratorz	@propertyz@cached_property)Zidsc                   s   G fddd G  fddd}|j j}|d usJ | ds&J tdd |dD s4J td	d |dD sBJ d S )
Nc                      s   e Zd Z dd ZdS )z0test_derived_from_prop_cached_prop.<locals>.Basec                 S  r   )z$A property

            Long detailsru   r7   r[   r7   r7   r8   prope  s   z5test_derived_from_prop_cached_prop.<locals>.Base.propN)r^   r_   r`   r  r7   )r  r7   r8   Based  s    r  c                      s    e Zd Ze dd ZdS )z3test_derived_from_prop_cached_prop.<locals>.Derivedc                 S  r   )Some extra docr   r7   r  r7   r7   r8   r  m  s   z8test_derived_from_prop_cached_prop.<locals>.Derived.propN)r^   r_   r`   r   r  r7   r  r  r7   r8   Derivedl  s    r"  z
A propertyc                 s  r  r  r7   r  r7   r7   r8   r}   v  r~   z5test_derived_from_prop_cached_prop.<locals>.<genexpr>r  c                 s  r  )r   Nr7   r  r7   r7   r8   r}   w  r~   )r  r   r  r  r  r  )r  r"  	docstringr7   r!  r8   "test_derived_from_prop_cached_prop^  s    r$  c                  C  sF   dd l } t| dd }d|jv sJ d|jv sJ d|jv s!J d S )Nr   c                   S  r   r	  r7   r7   r7   r7   r8   rq   }  r
  z#test_derived_from_func.<locals>.sumzextra docstring

zReturn the sum ofz+This docstring was copied from builtins.sum)builtinsr   r   )r%  rq   r7   r7   r8   test_derived_from_funcz  s   
r&  c                  C  s   t d} t d} |  rt d d| jjjv sJ dd | jjjdD \}d| v s2J d	| v s:J d
| jj	jv sCJ d S )Npandasdask.dataframezwe don't have docs yetr  c                 S  r  )zaxis :r7   r  r7   r7   r8   r    s    z4test_derived_from_dask_dataframe.<locals>.<listcomp>r  r  r  z!Object with missing values filled)
r=   r>   Z_dask_expr_enabledZxfail	DataFrameZdropnar   r  r  Zffill)ddZaxis_argr7   r7   r8    test_derived_from_dask_dataframe  s   


r+  c                   C  s   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s0J t ddks8J t ddks@J t ddksHJ t ddksPJ t ddksXJ t ddks`J d S )N100d   z100 MBi Z100MZ5kBi  z5.4 kBi  Z1kiBr   Z1Mii   Z1e6i@B z1e6 kBi ʚ;MBr   z.5GBi e)r    r7   r7   r7   r8   test_parse_bytes  s   r/  c                  C  s  ddddddddd	d
ddddddt jdddft jdddffD ]\} }t| }||ks6t|| dk s6J q tddddksAJ tddddksKJ tddddksUJ tddddks_J tddddksiJ tt tddd W d    n1 sw   Y  tt tddd W d    n1 sw   Y  tt tdd d W d    n1 sw   Y  tjtdd  td! W d    d S 1 sw   Y  d S )"N)Z1sru   )Z100ms皙?)Z5Sr   )z5.5s      @)z5.5 sr1  )z1 secondru   )z3.3 secondsgffffff
@)z3.3 millisecondsgF%uk?)z3500 usgy&1l?)z1 nsg&.>)Z2mx   )z5 daysi )z2 wi u )z	2 minutesr2  )NN)r   r   rU   )secondsr-  )Zmillisecondsr0  g+=Z1msr3  )defaultgMbP?r-   ru   msFz'Invalid time unit: foo. Valid units arematchz1 foo)	datetime	timedeltar!   absr=   Zraises
ValueError	TypeErrorKeyError)textvaluer6   r7   r7   r8   test_parse_timedelta  sN   
"r@  c                  C  s   t 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 s9J t| ddu sDJ t| ddu sOJ d S )Nr;   r   Fr7   T)r   )r   r   )r=   r>   r   empty)r?   r7   r7   r8   test_is_arraylike  s   
rB  c                  C  s   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s6J t t| dg dg dgksGJ d S )N)
      r   	   r   rE  ru      rD  rF  rF  rC  rD  r   rE  r   ru      )rC  rD  r   )rE  r   rE  ru   C   )rC  rD  r   rE  r   rE  ru   )rF  rD  rF  )listr   )sizesr7   r7   r8   test_iter_chunks  s   
,	&rK  c                    s  d} t | | u s
J d} t | | u sJ ddi t  t ks"J t  dd ks,J dtdfi t  tdtdfiks@J t  dddtdfiksNJ tdftdfd t   dtdfttdfdksjJ 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  D }t }dd |D }tdd |D sJ t |t||ksJ qdtddidddfi t  t	 dhB d  d d j
d dksJ  d d d dksJ d S )NHellos   HellorQ   ru   r7   Z	exclusiverQ   ru   )rN  )rQ   rU   r   c                   s"   i | ]\}}t |t | d qS )rM  )r%   )ry   kvdskr7   r8   
<dictcomp>  s   " z"test_stringify.<locals>.<dictcomp>c                 S  s   g | ]}t |qS r7   )rH   ry   rO  r7   r7   r8   r    s    z"test_stringify.<locals>.<listcomp>c                 s  s    | ]}t |tV  qd S rP   )r1   rH   rT  r7   r7   r8   r}   	  s    z!test_stringify.<locals>.<genexpr>rR   ru   )rU  )zru   rV  r   z('y', 1)z('z', 1))r%   rH   r*   rq   itemsrI  r   r   r   r   rR  )objZdsksZsdskkeysZskeysr7   rQ  r8   test_stringify  s:   

r[  c                  C  sl   d} t | | u s
J g d} t | }|d t| d ksJ |d t| d ks*J |d | d ks4J d S )NrL  ))rL   r   )   ar   )ru   ru   r   ru   rU   )r&   rH   )rY  r   r7   r7   r8   test_stringify_collection_keys  s   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                 C  s   t t| |ks
J d S rP   )r   r   )r   expectr7   r7   r8   test_format_bytes  s   r_  c                   C  s   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s0J t ddks8J t ddks@J t ddksHJ 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   r7   r7   r7   r8   test_format_time2  s   r`  c                  C  s   t  dd } tt}|  dksJ W d    n1 sw   Y  t|dks+J t|d j}d|v s8J d|v s>J d S )Nc                   S  r   Nr  r7   r7   r7   r7   r8   r|   ?  r   ztest_deprecated.<locals>.foor  ru   r   zfoo is deprecatedzremoved in a future releaser   r=   warnsFutureWarningr   rH   message)r|   recordmsgr7   r7   r8   test_deprecated>  s   
rh  c                  C  T   t dddd } tjtdd |  dksJ W d    d S 1 s#w   Y  d S )N1.2.3)versionc                   S  r   ra  r7   r7   r7   r7   r8   r|   M  r   z$test_deprecated_version.<locals>.foozdeprecated in version 1.2.3r6  r  r   r=   rc  rd  r{   r7   r7   r8   test_deprecated_versionL  
   
"rm  c                  C  ri  )Nrj  )Zafter_versionc                   S  r   ra  r7   r7   r7   r7   r8   r|   V  r   z*test_deprecated_after_version.<locals>.foozdeprecated after version 1.2.3r6  r  rl  r{   r7   r7   r8   test_deprecated_after_versionU  rn  ro  c                  C  sP   t tddd } tt |  dksJ W d    d S 1 s!w   Y  d S )N)categoryc                   S  r   ra  r7   r7   r7   r7   r8   r|   _  r   z%test_deprecated_category.<locals>.foor  )r   DeprecationWarningr=   rc  r{   r7   r7   r8   test_deprecated_category^  s
   
"rr  c                  C  st   t dddd } tt}|  dksJ W d    n1 s w   Y  t|dks-J t|d jdks8J d S )NZwoohoo)re  c                   S  r   ra  r7   r7   r7   r7   r8   r|   h  r   z$test_deprecated_message.<locals>.foor  ru   r   rb  )r|   rf  r7   r7   r8   test_deprecated_messageg  s   
rs  c                   C  s(   t tdksJ t tdddksJ d S )Nz"dask.highlevelgraph.HighLevelGraphT)Zshortzdask.HighLevelGraph)r)   r   r7   r7   r7   r8   test_typenames  s   rt  c                   @  r   )ra   Nr   r7   r7   r7   r8   ra   x  r   ra   c                  C  s   t  } t| tt ksJ d S rP   )ra   r)   )instancer7   r7   r8   test_typename_on_instances|  s   rv  c                  C  s4   d} t | }t | dd}|dksJ |dksJ d S )N)ru   rU   r   r   TZinitial_zero)ru   r   r   r   )r   ru   r   r   r   r   )rL   rQ   rR   r7   r7   r8   test_cached_cumsum  s
   ry  c                  C  s`   t d} d| jdf}t|}t|dd}| j|d| j| jf | j|dd| j| jf d S )Nr;   ru   r   Trw  r   )r=   r>   nanr   testingZassert_equal)r?   rL   rQ   rR   r7   r7   r8   test_cached_cumsum_nan  s   
r|  c                  C  s4   g d} t | dksJ d| d< t | dksJ d S )Nr   )ru   r   r   r   ru   )ru   r   rD  rx  rv   r7   r7   r8   test_cached_cumsum_non_tuple  s   r}  c                  C  s   t  } | d dksJ W d    n1 sw   Y  t dd} | dd  dks+J W d    n1 s5w   Y  t dd} | dd  dksJJ | d dksRJ W d    d S 1 s]w   Y  d S )Nr   .Zjpg)	extensionz.jpg)r(   )fnr7   r7   r8   test_tmpfile_naming  s   "r  c                  C  s   t d} t d}t d}t d}t| |ksJ t| g | ks)J t| t|jks6J t| g t| jksDJ t| t|ji ddksUJ t| g t|g kseJ d S )Nr;   r'  
dask.arrayr(  ru   Znpartitions)r=   r>   r   r)  r   ndarray	from_dict
from_array)r?   pddar*  r7   r7   r8   test_get_meta_library  s   




$r  c                  C  s   t d} t d}t d}t d}t| |ksJ t| g | ks)J t| t|jks6J t| g t| jksDJ t| t|ji dddksXJ t| g t|g dkskJ d S )NZcupycudfr  r(  ru   r  )	r=   r>   r   r)  r   r  r  Z
to_backendr  )cpr  r  r*  r7   r7   r8   test_get_meta_library_gpu  s   




r  )u
__future__r   r8  rc   r   r   r   r=   Ztlzr   r  r   Zdask.highlevelgraphr   Zdask.optimizationr   Z
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)   Zdask.utils_testr*   r9   r@   rG   rI   rM   rN   rf   rr   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  markZparametrizepropertycached_propertyr$  r&  r+  r/  r@  rB  rK  r[  r]  r_  r`  rh  rm  ro  rr  rs  rt  ra   rv  ry  r|  r}  r  r  r  r7   r7   r7   r8   <module>   s    $	  #	%
(&
				