B
    T\&                 @   s   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	 d dl
mZ d dlZedZg Zd	d
 Zdd Zdd Zdd Zdd Zdd ZdS )    )Callback)Cache)get_sync)get)add)sleepNcacheyc             C   s   t |  | d S )N   )flagappend)x r   4lib/python3.7/site-packages/dask/tests/test_cache.pyinc   s    
r   c           	   C   s   t d} t| }|  tdtdfiddks2tW d Q R X tdgksJt| jd dks\t|jrft|jrptxtrt	  qrW tdftdft
ddfd}| t|ddkstW d Q R X tdgksttjrtd S )	Ni'  r   r	      y)r   r   zr      )r   r   r   r   AssertionErrorr
   dataZ
starttimesZ	durationspopr   r   Zactive)cZccdskr   r   r   
test_cache   s    
$

r   c              C   sB   t ddd} t| jtj st| jjdks.t| jjdks>td S )Ni'  r	   )limit)r   
isinstancecacher   r   Zavailable_bytesr   )r   r   r   r   test_cache_with_number,   s    r   c           	   C   s   t d} td}ddlm}m} |j|ddd}|j|ddd}| . | dk s`t	| dk stt	W d Q R X d S )Ni'  z
dask.arrayr   )oneszerosr	   
   )Zchunks)
r   pytestimportorskipZnumpyr   r   Z
from_arrayZcomputeallr   )r   Zdar   r   r   or   r   r   test_cache_correctness3   s    
r%   c             G   s   t |  dg| S )Nr   )r   )Zdurationsizeargsr   r   r   f?   s    r(   c           	   C   s^   t ddft dddfd} td}| t| d W d Q R X |jjjd |jjjd k sZtd S )	Ng{Gz?r    gư>r	   r   )r   r   i'  r   )r(   r   r   r   ZscorerZcostr   )r   r   r   r   r   test_prefer_cheap_dependentD   s
    r)   )Zdask.callbacksr   Z
dask.cacher   Z
dask.localr   Zdask.threadedr   operatorr   Ztimer   r!   r"   r   r
   r   r   r   r%   r(   r)   r   r   r   r   <module>   s   
