ó
ßüÚ\c           @` sm  d  d l  m Z m Z m 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 m Z m Z m Z d  d l m Z m Z m Z d  d l m Z d  d	 l m Z d  d
 l m Z e d e d d g d ƒ d „  ƒ Z e d e ƒ d „  ƒ Z e d e ƒ d „  ƒ Z e d e ƒ d „  ƒ Z d „  Z e d e ƒ d „  ƒ Z d „  Z  d S(   i    (   t   absolute_importt   divisiont   print_functionN(   t   sleep(   t   frequencies(   t   get_task_stream(   t   gen_clustert   divt   inct   slowinc(   t   clientt   loopt   cluster_fixture(   t   wait(   t   TaskStreamPlugin(   t   timeR
   t   ncoress	   127.0.0.1i   i   c   	   	   g` sò  t  | ƒ } | j s t ‚ |  j t d g d t d ƒ ƒ } |  j t | d ƒ } t | ƒ Vt	 | j ƒ d k sz t ‚ t
 ƒ  } | j d d | ƒ } | s¤ t ‚ t d „  | d Dƒ ƒ sÄ t ‚ t d „  | d Dƒ ƒ sä t ‚ t | d	 ƒ } | d
 d k s
t ‚ t | j ƒ  ƒ d d h k s.t ‚ t	 t | d ƒ ƒ d k sPt ‚ | j d d | ƒ } t d „  | j ƒ  Dƒ ƒ s‡t ‚ t | d ƒ } | j d d d | d | d | d d ƒ} t | d ƒ j t | d ƒ ƒ sît ‚ d  S(   Ni   i
   i   i    c         s` s   |  ] } | d  k Vq d S(   R   N(    (   t   .0t   n(    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pys	   <genexpr>    s    t   namec         s` s   |  ] } | d  k Vq d S(   i    N(    (   R   t   d(    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pys	   <genexpr>!   s    t   durationt   colort   blacki	   t   yi   i   i   c         s` s!   |  ] } t  | ƒ d  k Vq d S(   i   N(   t   len(   R   t   L(    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pys	   <genexpr>(   s    t   startt   workerst   start_boundaryiÐ  (   R   t   buffert   AssertionErrort   mapR   t   ranget   submitt   sumR   R   t   dictt
   rectanglest   allR   t   sett   valuest   sortedt   issubset(	   t   ct   sR   t   est   futurest   totalt   rectst   countst   starts(    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   test_TaskStreamPlugin   s*    "	  $""(c         c` sT   t  | d d ƒ} |  j t t d ƒ ƒ } t | ƒ Vt | j ƒ d k sP t ‚ d  S(   Nt   maxleni   i
   (   R   R    R   R!   R   R   R   R   (   R+   R,   t   at   bt   tasksR.   (    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   test_maxlen1   s    c         c` sþ  t  | ƒ } t ƒ  } |  j t t d ƒ d d ƒ} t | ƒ V| j ƒ  } t | ƒ t | ƒ k sh t ‚ | j d | ƒ } t | ƒ t | ƒ k s˜ t ‚ | j d | d ƒ } d t | ƒ k oÑ t | ƒ k n sÜ t ‚ | j d d ƒ } t | ƒ t | ƒ k st ‚ | j d d ƒ } d	 t | ƒ k  oAt | ƒ k n sLt ‚ | j d
 d ƒ } t | ƒ d k svt ‚ | t	 | j
 ƒ d k s•t ‚ | j d | d d
 d ƒ | j d
 d ƒ k sÉt ‚ | j d | d
 d ƒ t	 | j
 ƒ d  k sút ‚ d  S(   Ni
   t   delaygš™™™™™¹?R   gš™™™™™É?i   s   20 st   500msi    t   counti   iýÿÿÿt   stopid   (   R   R   R    R	   R!   R   t   collectR   R   t   listR   (   R+   R,   R5   R6   R7   R   R.   R   (    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   test_collect9   s&    	..4c         c` s£   |  j  ƒ  V} | d k s t ‚ |  j t t d ƒ d d ƒ} t | ƒ Vg  | j D] } t | t ƒ rR | ^ qR d } |  j  ƒ  V} | t	 | j
 ƒ k sŸ t ‚ d  S(   Ni
   R9   gš™™™™™¹?i    (    (   R   R   R    R	   R!   R   t   pluginst
   isinstanceR   t   tupleR   (   R+   R,   R5   R6   R   R.   t   pR7   (    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   test_clientV   s    /c         C` sc   t  d |  ƒ 3 } t d ƒ |  j t t d ƒ ƒ } t | ƒ Wd  QXt | j ƒ d k s_ t ‚ d  S(   NR
   gš™™™™™¹?i
   (	   R   R   R    R   R!   R   R   t   dataR   (   R
   t   tsR.   (    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   test_client_syncc   s
    
c         c` s{   t  j d ƒ } |  j ƒ  V|  j t t d ƒ d d ƒ} t | ƒ V|  j d t ƒ V\ } } t | | j	 j
 ƒ sw t ‚ d  S(   Nt   bokehi
   R9   gš™™™™™¹?t   plot(   t   pytestt   importorskipR   R    R	   R!   R   t   TrueRA   t   plottingt   FigureR   (   R+   R,   R5   R6   RH   R.   RE   t   figure(    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   test_get_task_stream_plotm   s    c      	   C` sÑ   t  j d ƒ } t | ƒ } t j j | d ƒ } t d d d | ƒ # } t |  j t	 t
 d ƒ ƒ ƒ Wd  QXt | ƒ  } | j ƒ  } Wd  QXd | k s t ‚ d | k s¯ t ‚ t | j | j j ƒ sÍ t ‚ d  S(   NRH   s   foo.htmlRI   t   savet   filenamei
   R   (   RJ   RK   t   strt   ost   patht   joinR   R   R    R   R!   t   opent   readR   RA   RO   RM   RN   (   R
   t   tmpdirRH   t   fnRF   t   fRE   (    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   test_get_task_stream_savey   s    "(   s	   127.0.0.1i   (!   t
   __future__R    R   R   RT   R   R   RJ   t   toolzR   t   distributedR   t   distributed.utils_testR   R   R   R	   R
   R   R   t   distributed.clientR   t#   distributed.diagnostics.task_streamR   t   distributed.metricsRL   R3   R8   R?   RD   RG   RP   R\   (    (    (    sM   lib/python2.7/site-packages/distributed/diagnostics/tests/test_task_stream.pyt   <module>   s"   "% 	
