ó
ßüÚ\c        	   @   sô  d  d l  Z  d  d l m Z d  d l m Z d  d l Z d  d l Z d  d l m Z m	 Z	 m
 Z
 m Z m Z m Z d  d l m Z d  d l m Z m Z m Z d  d l m Z d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ e j j d e e g ƒ d „  ƒ Z e j j d e e g ƒ d „  ƒ Z e d e ƒ d „  ƒ Z e j j d d d ƒ e d e ƒ d „  ƒ ƒ Z  e d e ƒ d „  ƒ Z! e d e ƒ d „  ƒ Z" e d e ƒ d „  ƒ Z# e d e ƒ d „  ƒ Z$ e d e ƒ d „  ƒ Z% e d e ƒ d „  ƒ Z& d „  Z' e d e d i d  d! 6ƒ d" „  ƒ Z( e d e ƒ d# „  ƒ Z) e d e ƒ d$ „  ƒ Z* e d e ƒ d% „  ƒ Z+ e d e ƒ d& „  ƒ Z, e d e ƒ d' „  ƒ Z- e d e ƒ d( „  ƒ Z. e d e d) d< g d, ƒ d- „  ƒ Z/ e d e ƒ d. „  ƒ Z0 e d e ƒ d/ „  ƒ Z1 e d e d) d= g d+ ƒ d1 „  ƒ Z2 e d e d) d> g d2 d3 e ƒ d4 „  ƒ Z3 e j j d d5 ƒ e d e ƒ d6 „  ƒ ƒ Z4 d7 „  Z5 e d e d) d? g d i d8 d9 6ƒ d: „  ƒ Z6 e d e ƒ d; „  ƒ Z7 d S(@   iÿÿÿÿN(   t   sleep(   t   gen(   t   Actort   ActorFuturet   Clientt   Futuret   waitt   Nanny(   t   gen_cluster(   t   clientt   cluster_fixturet   loop(   t   timet   Counterc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   i    c         C   s   d |  _  d  S(   Ni    (   t   n(   t   self(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   __init__   s    c         C   s   |  j  d 7_  |  j  S(   Ni   (   R   (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt	   increment   s    c         C   s   |  j  | 7_  |  j  S(   N(   R   (   R   t   x(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   add   s    (   t   __name__t
   __module__R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR      s   		t   Listc           B   s#   e  Z g  Z d d  „ Z d „  Z RS(   c         C   s   g  |  _  d  S(   N(   t   L(   R   t   dummy(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR       s    c         C   s   |  j  j | ƒ d  S(   N(   R   t   append(   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   #   s    N(   R   R   R   t   NoneR   R   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR      s   t   ParameterServerc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   i  |  _  d  S(   N(   t   data(   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   (   s    c         C   s   | |  j  | <d  S(   N(   R   (   R   t   keyt   value(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   put+   s    c         C   s   |  j  | S(   N(   R   (   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   get.   s    (   R   R   R   R   R    (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   '   s   		t   direct_to_workersc            s)   t  d t ƒ ‡  f d †  ƒ } | ƒ  d  S(   NR	   c         3   s‘  t  | j d t d ˆ  ƒV}  |  j t d | j g d t ƒ} t | t ƒ sR t ‚ | V} | j sh t ‚ t	 | d ƒ s} t ‚ t	 | d ƒ s’ t ‚ t	 | d ƒ s§ t ‚ | j
 V} | d k sÃ t ‚ | j | j k sÛ t ‚ t | j | j t ƒ sú t ‚ | j | j j st ‚ | j ƒ  | j ƒ  g V| j
 V} | d	 k sFt ‚ | j d
 ƒ x, | j
 Vd k r| j
 V} t j d ƒ VqVW|  j ƒ  Vd  S(   Nt   asynchronousR!   t   workerst   actorR   R   R   i    i   i
   g{®Gáz„?i   (   R   t   addresst   Truet   submitR   t
   isinstanceR   t   AssertionErrort   _addresst   hasattrR   t   actorsR   t   tasksR$   R   R   R   R    t   close(   t   ct   st   at   bt   counterR   (   R!   (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test4   s,    !


(   R   R&   (   R!   R4   (    (   R!   s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_client_actions2   s    "t   separate_threadc            s)   t  d t ƒ ‡  f d †  ƒ } | ƒ  d  S(   NR	   c         3   s“   |  j  t d | j g d t ƒ} | j ‰  ‡  ‡ f d †  } g  t d ƒ D] } |  j  | | d t ƒ^ qI } | V| V} | j Vd k s t ‚ d  S(   NR#   R$   c            s    |  j  } t |  ƒ t k s! t ‚ |  j ˆ  k s6 t ‚ |  j d ˆ ƒ } t | t ƒ s] t ‚ d t | ƒ j k sx t ‚ | j	 d d ƒ } | | k sœ t ‚ d  S(   NR6   R   t   timeouti   (
   R   t   typeR   R)   R*   R   R(   R   R   t   result(   R3   t   startt   futuret   end(   t	   a_addressR6   (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   f`   s    	i
   t   pure(   R'   R   R%   R&   t   ranget   FalseR   R)   (   R/   R0   R1   R2   R3   R>   t   _t   futures(   R6   (   R=   s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR4   [   s    !	1(   R   R&   (   R6   R4   (    (   R6   s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_worker_actionsY   s    R	   c         c   s„   |  j  t d t ƒV} | j t k s+ t ‚ t | d ƒ s@ t ‚ t | d ƒ sU t ‚ t | d ƒ sj t ‚ t | d ƒ s€ t ‚ d  S(   NR$   R   R   R   t   abc(   R'   R   R&   t   _clsR)   R+   (   R/   R0   R1   R2   R3   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt
   test_Actoru   s    t   reasons$   Tornado can pass things out of orders5   Should rely on sending small messages rather than rpcc   
      c   sç   t  ƒ  } |  j t d ƒ } |  j t d t d | ƒ} | V} x! t d ƒ D] } | j | ƒ qJ Wx8 t r› t j d ƒ V| j V} t	 | ƒ d k rd Pqd qd W| j V} t  ƒ  }	 | t
 t d ƒ ƒ k sÍ t ‚ |	 | d k sã t ‚ d  S(   Ngš™™™™™É?R$   R   id   gš™™™™™¹?(   R   R'   R    R   R&   R@   R   R   R   t   lent   tupleR)   (
   R/   R0   R1   R2   R:   R;   R$   t   iR   t   stop(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_linear_access‚   s    		

	c         c   sc   d t  f d „  ƒ  Y} t j t ƒ  } |  j | d t ƒV} Wd  QXd t | j ƒ k s_ t ‚ d  S(   Nt   Fooc           B   s   e  Z d  Z d „  Z RS(   i    c         S   s   t  d ƒ ‚ d  S(   Nt   bar(   t
   ValueError(   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   ¢   s    (   R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyRN   Ÿ   s   R$   RO   (	   t   objectt   pytestt   raisesRP   R'   R&   t   strR   R)   (   R/   R0   R1   R2   RN   t   infoR;   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_exceptions_create   s    c         c   sQ   d t  f d „  ƒ  Y} |  j | d t ƒV} t j t ƒ  | j ƒ  VWd  QXd  S(   NRN   c           B   s   e  Z d  „  Z RS(   c         S   s   d d d  S(   Ni   i    (    (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   throw®   s    (   R   R   RW   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyRN   ­   s   R$   (   RQ   R'   R&   RR   RS   t   ZeroDivisionErrorRW   (   R/   R0   R1   R2   RN   t   foo(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_exceptions_method«   s    c         c   sN   |  j  t d t ƒ} t | ƒ V~ x$ | j s8 | j rI t j d ƒ Vq& Wd  S(   NR$   g{®Gáz„?(   R'   R   R&   R   R,   R   R    (   R/   R0   R1   R2   R$   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_gc¶   s
    c         c   sw   |  j  t d t ƒ} t | ƒ V|  j  t d ƒ } |  j  d „  | | ƒ } ~ t j d ƒ V| j ss | j ss t ‚ d  S(   NR$   g      à?c         S   s   |  S(   N(    (   R   t   y(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   <lambda>Å   t    g333333Ó?(   R'   R   R&   R   R    R   R,   R)   (   R/   R0   R1   R2   R$   R   R\   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_track_dependenciesÀ   s    c         c   sµ   |  j  t d t d | j g ƒ} t | t ƒ s6 t ‚ t | ƒ Vt | j | j	 t ƒ s` t ‚ | V} t | t
 ƒ s| t ‚ | j s‹ t ‚ t j d ƒ V| j	 |  j k s± t ‚ d  S(   NR$   R#   gš™™™™™¹?(   R'   R   R&   R%   R(   R   R)   R   R,   R   R   R*   R   R    RC   (   R/   R0   R1   R2   R3   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_futureÍ   s    !c         c   s<  |  j  t d t d | j g ƒ} d „  } |  j  | | d | j g ƒ} | Vd „  | j | j j Dƒ | j h k s| t ‚ d „  | j | j j Dƒ | j h k s« t ‚ |  j  | | d | j g d t	 ƒ} | Vd „  | j | j j Dƒ | j h k st ‚ d „  | j | j j Dƒ | j | j h k s8t ‚ d  S(	   NR$   R#   c         S   s.   t  |  t ƒ s t ‚ |  j t k s* t ‚ d  S(   N(   R(   R   R)   RF   R   (   R1   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR>   à   s    c         S   s   h  |  ] } | j  ’ q S(    (   R   (   t   .0t   ts(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pys	   <setcomp>ç   s   	 c         S   s   h  |  ] } | j  ’ q S(    (   R   (   Ra   Rb   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pys	   <setcomp>è   s   	 R?   c         S   s   h  |  ] } | j  ’ q S(    (   R   (   Ra   Rb   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pys	   <setcomp>í   s   	 c         S   s   h  |  ] } | j  ’ q S(    (   R   (   Ra   Rb   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pys	   <setcomp>î   s   	 (
   R'   R   R&   R%   R-   R   t   dependenciesR)   t
   dependentsRA   (   R/   R0   R1   R2   R3   R>   R   R\   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_future_dependenciesÜ   s    !	//$/c         C   sÇ   |  j  t d t ƒ} | j ƒ  } | j d k s6 t ‚ | j ƒ  } | j ƒ  } | d k s` t ‚ | j d k su t ‚ | j ƒ  | j ƒ  k s“ t ‚ d t | ƒ k s« t ‚ d t | ƒ k sÃ t ‚ d  S(   NR$   i    i   R   s   distributed.actor(   R'   R   R&   R9   R   R)   R   t   repr(   R	   R3   R;   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt	   test_syncñ   s    t   configt   1ss!   distributed.comm.timeouts.connectc         c   sÈ   |  j  t d t d | j g ƒ} t | ƒ V| V} | j ƒ  Vt j t ƒ  } | j	 ƒ  VWd  QXd t
 | j ƒ j ƒ  k s‚ t ‚ d t
 | j ƒ j ƒ  k s£ t ‚ d t
 | j ƒ j ƒ  k sÄ t ‚ d  S(   NR$   R#   t   workert   lost(   R'   R   R&   R%   R   R.   RR   RS   t	   ExceptionR   RT   R   t   lowerR)   (   R/   R0   R1   R2   R;   R3   RU   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_failed_worker  s    !!!c         c   s<   |  j  t d t ƒV} x t d ƒ D] } | j ƒ  Vq# Wd  S(   NR$   iè  (   R'   R   R&   R@   R   (   R/   R0   R1   R2   R3   RK   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   bench  s    c         c   st   t  j d ƒ } |  j t d t ƒV} | j j d ƒ } | j d | ƒ V| j d ƒ V} | | k j ƒ  sp t	 ‚ d  S(   Nt   numpyR$   iè  R   (
   RR   t   importorskipR'   R   R&   t   randomR   R    t   allR)   (   R/   R0   R1   R2   t   npt   serverR   R\   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_numpy_roundtrip  s    c         c   sk   t  j d ƒ } |  j t d t ƒV} | j j d ƒ } | j | ƒ V| j V} | | k j ƒ  sg t	 ‚ d  S(   NRp   R$   iè  (
   RR   Rq   R'   R   R&   Rr   R   R   Rs   R)   (   R/   R0   R1   R2   Rt   R3   R   R\   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_numpy_roundtrip_getattr(  s    
c         c   s}   |  j  t d t ƒV} d t | ƒ k s. t ‚ d t | ƒ k sF t ‚ | j t | ƒ k sa t ‚ d t | ƒ k sy t ‚ d  S(   NR$   R   R   s   distributed.actor(   R'   R   R&   Rf   R)   R   (   R/   R0   R1   R2   R3   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt	   test_repr7  s
    c         c   sg   |  j  t d t ƒV} t t | ƒ ƒ } x8 t t ƒ D]* } | j d ƒ s5 | | k s_ t ‚ q5 q5 Wd  S(   NR$   RB   (   R'   R   R&   t   sett   dirt
   startswithR)   (   R/   R0   R1   R2   R3   t   dt   attr(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_dirA  s
    c         c   s¡   |  j  t d t ƒV} d „  } |  j | t d ƒ d | ƒ} |  j  d „  | ƒ } xC | j ƒ  s— t | j ƒ | j | j k s† t	 ‚ t
 j d ƒ VqU W| Vd  S(   NR$   c         S   s+   x$ t  |  ƒ D] } | j ƒ  j ƒ  q Wd  S(   N(   R@   R   R9   (   R   R3   RK   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   P  s    i
   R3   c         S   s   d  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR]   U  R^   g{®Gáz„?(   R'   R   R&   t   mapR@   t   doneRI   t
   processingt   ncoresR)   R   R    (   R/   R0   R1   R2   R3   R   RC   R€   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_many_computationsL  s    	%R‚   s	   127.0.0.1i   i   c         c   sZ   d t  f d „  ƒ  Y} |  j | d t ƒV} g  t d ƒ D] } | j ƒ  ^ q9 } | Vd  S(   Nt   Unsafec           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   d |  _  d  S(   Ni    (   R   (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   a  s    c         S   sg   |  j  d k s t ‚ |  j  d 7_  x3 t d ƒ D]% } t d ƒ |  j  d k s1 t ‚ q1 Wd |  _  d  S(   Ni    i   i   gü©ñÒMb`?(   R   R)   R@   R    (   R   RK   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR>   d  s    
(   R   R   R   R>   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR„   `  s   	R$   i
   (   RQ   R'   R&   R@   R>   (   R/   R0   R1   R2   R„   t   unsafeRK   RC   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_thread_safety^  s    %c         c   sf   |  j  t d t ƒV} |  j  d „  | ƒ } t | ƒ V| j | j j | j | j h k sb t ‚ d  S(   NR$   c         S   s   d  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR]   v  R^   (   R'   R   R&   R   R-   R   Rc   R)   (   R/   R0   R1   R2   R3   R;   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_Actors_create_dependenciess  s    c         c   së   d t  f d „  ƒ  Y} |  j t j d d ƒ } t | ƒ V| j | j j \ } |  j | | d t ƒV} |  j | | d t ƒV} | j | j k s™ t	 ‚ | j | j j | h k s» t	 ‚ | j | j j | j | j j k sç t	 ‚ d  S(   NRN   c           B   s   e  Z d  „  Z RS(   c         S   s   d  S(   N(    (   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   ~  s    (   R   R   R   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyRN   }  s   R2   i@B R$   (
   RQ   R'   t   operatort   mulR   R-   R   t   who_hasR&   R)   (   R/   R0   R1   R2   RN   t   wsR   R\   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_load_balance{  s    "i   c         g   sˆ   d t  f d „  ƒ  Y} |  j t j d d ƒ } t | ƒ V|  j | t d ƒ d | d t ƒ} t | ƒ Vt d „  | Dƒ ƒ s„ t	 ‚ d  S(	   NRN   c           B   s   e  Z d d  „ Z RS(   c         S   s   d  S(   N(    (   R   R   R\   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR     s    N(   R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyRN     s   R2   i@B i
   R\   R$   c         s   s$   |  ] } t  | j ƒ d  k Vq d S(   i   N(   RI   R,   (   Ra   t   w(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pys	   <genexpr>™  s    (
   RQ   R'   Rˆ   R‰   R   R   R@   R&   Rs   R)   (   R/   R0   R#   RN   R2   R,   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_load_balance_map  s    $i   t   Workerc         '   sü   d d  l  j } d d  l ‰ | j j d d d ƒ} | j ƒ  } t | ƒ Vd d ‡ f d †  ƒ  Y} d  ‡  ‡ f d † } d d l m ‰  t	 ƒ  } |  j
 | | j d	 d
 t ƒV} | j | d | d | j ƒ}	 t |	 j ƒ  ƒ Vt	 ƒ  }
 ˆ  |
 | ƒ GHd  S(   Niÿÿÿÿi ¡ iè  t   chunksR   c              s/   e  Z d Z ‡  f d  †  Z d „  Z d „  Z RS(   c            s   ˆ  j  j  | ƒ |  _ d  S(   N(   Rr   R   (   R   R   (   Rt   (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   ¨  s    c         S   s"   |  j  | 7_  |  j  d :_  d  S(   Ni   (   R   (   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   update«  s    c         S   s   |  j  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   get_data¯  s    N(   R   R   R   R   R   R‘   R’   (    (   Rt   (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR   ¥  s   	c            sy   t  ƒ  } | j d t ƒ j ƒ  } t  ƒ  } |  | j d d ƒ } | j | d t ƒˆ  | | ƒ GHˆ j | | g g ƒ S(   NR6   t   axisi    (   R   R’   RA   R9   t   meanR‘   t   array(   t   blockt   psR:   t   paramsRL   R‘   (   t   format_timeRt   (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR>   ²  s    		(   R™   i   R$   R—   t   dtype(   i ¡ iè  (   iè  iè  (    (   t
   dask.arrayR•   Rp   Rr   t   persistR   R   t   distributed.utilsR™   R   R'   t   shapeR&   t
   map_blocksRš   (   R/   R0   R#   t   daR   R   R>   R:   R—   R\   R<   (    (   R™   Rt   s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   bench_param_serverœ  s    		 	t   unknownc         c   sâ   t  j d „  ƒ } t  j d „  ƒ } t  j t ƒ ƒ  } g  t d ƒ D] } | | | ƒ ^ qC } | | | ƒ }	 |  j |	 d | ƒV}
 |
 d k s• t ‚ t ƒ  } x= | j s³ | j rÝ t j	 d
 ƒ Vt ƒ  | d k  s¡ t ‚ q¡ Wd  S(   Nc         S   s@   t  | t ƒ s t ‚ x$ t |  ƒ D] } | j ƒ  j ƒ  q" Wd  S(   N(   R(   R   R)   R@   R   R9   (   R   R3   RK   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR>   É  s    c         S   s   |  j  S(   N(   R   (   R3   t   blanks(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   checkÏ  s    i   R,   i    i   i   i   i   g{®Gáz„?i   i   i   i
   (
   t   daskt   delayedR   R@   t   computeR)   R   R   R   R    (   R/   R0   R1   R2   R>   R¤   R3   RK   t   valuest   finalR9   R:   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_computeÆ  s    (	c   	      C   sì   t  j d „  ƒ } t  j d „  ƒ } t  j t ƒ ƒ  } g  t d ƒ D] } | | | ƒ ^ qC } | | | ƒ } | j d | ƒ } | d k s‘ t ‚ d
 „  } t ƒ  } xB t |  j | ƒ j	 ƒ  ƒ rç t
 d ƒ t ƒ  | d k  s¦ t ‚ q¦ Wd  S(   Nc         S   sL   t  | t ƒ s! t t | ƒ ƒ ‚ x$ t |  ƒ D] } | j ƒ  j ƒ  q. Wd  S(   N(   R(   R   R)   R8   R@   R   R9   (   R   R3   RK   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR>   á  s    !c         S   s   |  j  S(   N(   R   (   R3   R£   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR¤   ç  s    i   R,   i    i   i   i   i   c         S   s   t  |  j ƒ t  |  j ƒ S(   N(   RI   R   R,   (   t   dask_worker(    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR¤   ò  s    g{®Gáz„?i   i   i   i
   (   R¥   R¦   R   R@   R§   R)   R   t   anyt   runR¨   R    (	   R	   R>   R¤   R3   RK   R¨   R©   R9   R:   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_compute_syncà  s    (		
t   1mss#   distributed.worker.profile.intervalc         c   s£   d t  f d „  ƒ  Y} |  j | d t ƒV} xU t d ƒ D]G } | j d ƒ Vt | j d ƒ d j d ƒ s| d	 | j k r9 d  Sq9 Wt	 sŸ t
 t | j ƒ ƒ ‚ d  S(
   Nt   Sleeperc           B   s   e  Z d  „  Z RS(   c         S   s   t  | ƒ d  S(   N(   R    (   R   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR      s    (   R   R   R    (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR°     s   R$   i   gš™™™™™É?t   childreni    R    s   Sleeper.sleep(   RQ   R'   R&   R@   R    t   listt   profile_recentR{   t   profile_keysRA   R)   (   R/   R0   R1   R°   t   sleeperRK   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_actors_in_profileû  s     c         #   s¦   d d l  m ‰  d t f ‡  f d †  ƒ  Y} |  j | d t ƒV} g  t d ƒ D] } | j ƒ  ^ qO } t j d ƒ Vt	 d „  | Dƒ ƒ s’ t
 ‚ | j ƒ  V| Vd  S(	   Niÿÿÿÿ(   t   Eventt   Waiterc              s;   e  Z ‡  f d  †  Z e j d „  ƒ Z e j d „  ƒ Z RS(   c            s   ˆ  ƒ  |  _  d  S(   N(   t   event(   R   (   R·   (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR     s    c         S   s   |  j  j ƒ  d  S(   N(   R¹   Ry   (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyRy     s    c         s   s   |  j  j ƒ  Vd  S(   N(   R¹   R   (   R   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR     s    (   R   R   R   R   t	   coroutineRy   R   (    (   R·   (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyR¸     s   R$   i   gš™™™™™¹?c         s   s   |  ] } | j  ƒ  Vq d  S(   N(   R€   (   Ra   R;   (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pys	   <genexpr>&  s    (   t   tornado.locksR·   RQ   R'   R&   R@   R   R   R    R¬   R)   Ry   (   R/   R0   R1   R2   R¸   t   waiterRK   RC   (    (   R·   s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   test_waiter  s    %(   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (8   Rˆ   R   R    t   tornadoR   RR   R¥   t   distributedR   R   R   R   R   R   t   distributed.utils_testR   R	   R
   R   t   distributed.metricsRQ   R   R   R   t   markt   parametrizeR&   RA   R5   RD   RG   t   xfailRM   RV   RZ   R[   R_   R`   Re   Rg   Rn   Ro   Rv   Rw   Rx   R~   Rƒ   R†   R‡   RŒ   RŽ   R¡   Rª   R®   R¶   R½   (    (    (    s;   lib/python2.7/site-packages/distributed/tests/test_actor.pyt   <module>   sZ   .
$'$
	%
%%+*		