ó
¦–Õ\c           @   s;  d  d l  m Z 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 i d d	 6d
 d 6e d	 d f d 6e d	 d f d 6e d d f d 6Z d d „ Z d „  Z d „  Z d „  Z e j j d e e g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   addt   mulN(   t   Callback(   t   get_sync(   t   ProgressBar(   t   format_time(   t   geti   t   ai   t   bt   ct   dt   ei(   c         C   sŸ   |  j  ƒ  \ } } | j d ƒ d k s- t ‚ g  | j d ƒ d j d ƒ D] } | j ƒ  ^ qJ \ } } } | d d | d k s‰ t ‚ | d k s› t ‚ d  S(	   Ns   100% Completedi   s   iÿÿÿÿt   |t   [t   #t   ](   t
   readouterrt   countt   AssertionErrort   splitt   strip(   t   capsyst   widtht   outt   errt   it   bart   percentt   time(    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   check_bar_completed   s
    >c         C   sj   d d l  m } | d d d d d	 ƒ} t ƒ   | j ƒ  j ƒ  } Wd  QX| d k s\ t ‚ t |  ƒ d  S(
   Niÿÿÿÿ(   t   onesid   t   dtypet   f4t   chunksi'  (   id   id   (   id   id   (   t
   dask.arrayR   R   t   sumt   computeR   R   (   R   R   t   dataR   (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_array_compute   s    
c         C   sq   t  ƒ   t t d ƒ } Wd  QX| d k s1 t ‚ t |  ƒ t  d d ƒ  t t d ƒ } Wd  QXt |  d ƒ d  S(   NR   i   R   i   (   R   t   get_threadedt   dskR   R   (   R   R   (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_progressbar$   s    

c         C   sV   t  d ƒ  t t d ƒ } Wd  QX|  j ƒ  \ } } | d k rL | d k sR t ‚ d  S(   Ng      ð?R   t    (   R   R'   R(   R   R   (   R   R   R   (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_minimum_time.   s    R   c         C   st   i d „  f d 6} y# t  ƒ   } t | d ƒ Wd  QXWn t k
 rI n X| j sZ t ‚ | j j ƒ  sp t ‚ d  S(   Nc           S   s   d d S(   Ni   i    (    (    (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   <lambda>7   R*   R   (   R   R'   t   ZeroDivisionErrort   _runningR   t   _timert   is_alive(   R   R(   t   pbar(    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_clean_exit5   s    c           C   s|   t  d ƒ d k s t ‚ t  d ƒ d k s0 t ‚ t  d ƒ d k sH t ‚ t  d ƒ d k s` t ‚ t  d	 ƒ d
 k sx t ‚ d  S(   Ngffffffö?s    1.4sgÍÌÌÌÌÌ$@s   10.4sgš™™™™Y@s    1min 40.4sg33333C@s   16min 40.4sg33333ˆÃ@s    2hr 46min 40.4s(   R   R   (    (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_format_timeA   s
    c         C   sl   zW t  ƒ  } | j ƒ  t j s% t ‚ t t d ƒ t |  ƒ | j ƒ  t j sV t ‚ Wd  t j j	 ƒ  Xd  S(   NR   (
   R   t   registerR   t   activeR   R'   R(   R   t
   unregistert   clear(   R   t   p(    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_registerI   s    	


c         C   s2   t  ƒ   t i d d 6d ƒ Wd  QXt |  ƒ d  S(   Ni   t   x(   R   R'   R   (   R   (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_no_tasksZ   s    
c         C   s  t  j d ƒ } d d l m } | j d ƒ } | | ƒ } | @ t ƒ  0 t i t d d f d 6d ƒ d k sv t ‚ Wd  QXWd  QXt |  ƒ | j	 d d k s¥ t ‚ | P t ƒ  @ t i t d d f d 6t d d f d	 6d	 ƒ d
 k sñ t ‚ Wd  QXWd  QXt |  ƒ d  S(   Nt   cacheyiÿÿÿÿ(   t   Cachei'  i   i   R:   i   t   yi   (
   t   pytestt   importorskipt
   dask.cacheR=   R   R'   R   R   R   R%   (   R   R<   R=   R	   t   cc(    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_with_cache`   s    
7

Gc         C   sv   i d d 6d d 6t  d d f d 6t  d d f d 6d d 6t d d f d 6} t ƒ   t | d ƒ Wd  QXt |  ƒ d  S(	   Ni   R   i   R   R	   R
   R   t   f(   R    R   R   R'   R   (   R   R(   (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_with_aliasr   s    

c          C   sF   t  ƒ  }  |   t i d d 6d ƒ Wd  QXt |  j t ƒ sB t ‚ d  S(   Ni   R:   (   R   R'   t
   isinstancet   last_durationt   floatR   (   R8   (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   test_store_time~   s    	(   t   operatorR    R   R?   t   dask.callbacksR   t
   dask.localR   t   dask.diagnosticsR   t   dask.diagnostics.progressR   t   dask.threadedR   R'   R(   R   R&   R)   R+   t   markt   parametrizeR2   R3   R9   R;   RC   RE   RI   (    (    (    sC   lib/python2.7/site-packages/dask/diagnostics/tests/test_progress.pyt   <module>   s,   
			
	$					