+
    Bi                     f   ^ RI t ^ RI Ht ^ RIt^ RIt^ RItRt]P                  ! ]4      tR t ! R R] P                  4      t
 ! R R] P                  4      t ! R	 R
] P                  4      t ! R R] P                  4      t ! R R] P                  4      t]R8X  d   ] P                   ! 4        R# R# )    N)mockz^<(?P<class>.*?) object at (?P<address>.*?)\[(?P<extras>(set|unset|locked|unlocked|filling|draining|resetting|broken)(, value:\d)?(, waiters:\d+)?(, waiters:\d+\/\d+)?)\]>\zc                  D    \         P                  P                  R 4       R # N)asyncioevents_set_event_loop_policy     3/usr/lib/python3.14/test/test_asyncio/test_locks.pytearDownModuler      s    NN))$/r
   c                   h   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )	LockTestsc                  "   \         P                  ! 4       pV P                  \        V4      R 4       V P	                  \
        P                  \        V4      4      4       VP                  4       G Rj  xL
  V P                  \        V4      R4       V P	                  \
        P                  \        V4      4      4       R#  LN5i)z[unlocked]>N	[locked]>)r   LockassertEndsWithrepr
assertTrueRGX_REPRmatchacquireselflocks   & r   	test_reprLockTests.test_repr   s~     ||~DJ6tDz23llnDJ4tDz23 	s   A1C3C4ACc                  "   \         P                  ! 4       pV P                  \        R 4      ;_uu_ 4        VG Rj  xL
  RRR4       V P	                  VP                  4       4       R#  L-  + '       g   i     L3; i5i)z'Lock' object can't be awaitedN)r   r   assertRaisesRegex	TypeErrorassertFalselockedr   s   & r   	test_lockLockTests.test_lock%   s\     ||~##,
 
 JJ	
 	' 	
 
s,   4A?A,A*A,)A?*A,,A<	7A?c                  "   \         P                  \         P                  \         P                  \         P                  \         P
                  .p\         P                  ! 4       pV F@  pV P                  \        VP                   R 24      ;_uu_ 4        V! VR7       RRR4       KB  	  R#   + '       g   i     KW  ; i5i)z8\.__init__\(\) got an unexpected keyword argument 'loop'loopN)
r   r   	ConditionEvent	SemaphoreBoundedSemaphoreget_running_loopr   r   __name__)r   primitives_clsr&   clss   &   r   &test_lock_doesnt_accept_loop_parameter0LockTests.test_lock_doesnt_accept_loop_parameter0   s     LLMM$$
 '')!C''LL> "+ , 
   "  s   BC
B-C-B>8	Cc           
     V  "   \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       .pV F  p\         P
                  ! R 4      G Rj  xL
  V P                  VP                  4       4       V P                  \        R4      ;_uu_ 4        VG Rj  xL
 ;_uu_ 4         RRR4       RRR4       V P                  VP                  4       4       K  	  R#  L LE  + '       g   i     LA; i  + '       g   i     LL; i5i){Gz?Nz'\w+' object can't be awaited)
r   r   r'   r)   r*   sleepr    r!   r   r   )r   
primitivesr   s   &  r   test_lock_by_with_statement%LockTests.test_lock_by_with_statementC   s     LLN$$&	

 D--%%%T[[]+''0   ZZZ  	 T[[]+ %  ZZ	 sU   A1D)3C?4AD)5D;D
<DD
D.D)DDDD&!D)c                :  a"   \         P                  ! 4       o. pT P                  SP                  4       G R j  xL
 4       V3R lpV3R lpV3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P
                  ! ^ 4      G R j  xL
  V P                  . V4       SP                  4        \         P
                  ! ^ 4      G R j  xL
  V P                  ^.V4       \         P
                  ! ^ 4      G R j  xL
  V P                  ^.V4       \         P                  ! V! V4      4      pSP                  4        \         P
                  ! ^ 4      G R j  xL
  V P                  ^^.V4       SP                  4        \         P
                  ! ^ 4      G R j  xL
  V P                  . ROV4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       R #  ELQ EL EL EL} EL# L5i)Nc                 r   <"   SP                  4       G R j  xL
 '       d   V P                  ^4       R#  L5iNTr   appendresultr   s   &r   c1"LockTests.test_acquire.<locals>.c1\   )     \\^##a  $   75	77c                 r   <"   SP                  4       G R j  xL
 '       d   V P                  ^4       R#  L5ir9   r:   r<   s   &r   c2"LockTests.test_acquire.<locals>.c2a   r@   rA   c                 r   <"   SP                  4       G R j  xL
 '       d   V P                  ^4       R#  L5ir9   r:   r<   s   &r   c3"LockTests.test_acquire.<locals>.c3f   r@   rA            )
r   r   r   r   create_taskr3   assertEqualreleasedoner=   )	r   r=   r>   rC   rF   t1t2t3r   s	   &       @r   test_acquireLockTests.test_acquireV   s    ||~dlln,-	
	
	
   F,  F,mmAV$mmA!f%mmA!f%  F,mmA!Q(mmAF+	"		$	"		$	"		$[ -( 	 	 	 	 	sm   6JJ
A+J%J&?J%J&0JJAJ3J4AJ5J6CJJJJJJc                  "   \         P                  ! 4       pT P                  VP                  4       G R j  xL
 4       \         P                  ! VP                  4       4      p\         P
                  ! 4       P                  VP                  4       V P                  \         P                  4      ;_uu_ 4        VG R j  xL
  R R R 4       V P                  VP                  4       R #  L L+  + '       g   i     L1; i5ir   )r   r   r   r   rL   r+   	call_sooncancelassertRaisesCancelledErrorr    _waiters)r   r   tasks   &  r   test_acquire_cancelLockTests.test_acquire_cancel   s     ||~dlln,-""4<<>2  ",,T[[9w5566JJ 7' -
  76s:   4C?C(BC?8C,>C*?C,&C?*C,,C<	7C?c                  a"   \         P                  ! 4       oV3R  lp\         P                  ! 4       P                  4       p\         P                  ! V! RV4      4      p\         P
                  ! ^ 4      G Rj  xL
  V P                  SP                  4       4       \         P                  ! V! RR4      4      p\         P
                  ! ^ 4      G Rj  xL
  V P                  \        SP                  4      ^4       \         P                  ! V! RR4      4      p\         P
                  ! ^ 4      G Rj  xL
  V P                  \        SP                  4      ^4       VP                  R4       VP                  4        V P                  SP                  ^ ,          P                  4       4       \         P
                  ! ^ 4      G Rj  xL
  V P                  SP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       VG Rj  xL
  R#  EL ELe EL Lv L5i)c                    <"   SP                  4       G R j  xL
   Ve   VG R j  xL
  SP                  4        R #  L% L  SP                  4        i ; i5ir   )r   rN   )nameblockerr   s   &&r   lockit*LockTests.test_cancel_race.<locals>.lockit   sD     ,,.  &!MM ! "s2   A=A	A ?A AA AAANBC)r   r   r+   create_futurerL   r3   r   r!   rM   lenrZ   
set_resultrW   	cancelledr    rO   )r   rb   fatatbtcr   s   &     @r   test_cancel_raceLockTests.test_cancel_race   s     ||~	 %%'557  R1mmA&  T!23mmAT]]+Q/  T!23mmAT]]+Q/ 	d
		a(2245mmA'	"'% 	 	 	 	 	s^   A5I8H49AIH7AI2H:3BIH=A&I-H?.I7I:I=I?Ic                  aaaa	"   \         P                  ! 4       p\         P                  ! 4       o^ o^ oVVV3R lpVV	3R lpSP                  4       G Rj  xL
  \         P                  ! V! 4       4      o	\         P                  ! V! 4       4      p\         P                  ! V! 4       4      p\         P
                  ! ^ 4      G Rj  xL
  VP                  V4       V P                  \         P                  4      ;_uu_ 4        S	G Rj  xL
  RRR4       V P                  S^4       V P                  S^4       T P                  S	P                  4       ;'       d    VP                  4       4       VP                  4        \         P
                  ! ^ 4      G Rj  xL
  V P                  VP                  4       4       R#  ELi L L  + '       g   i     L; i L?5i)r   c                  h   <"   S ^,          o SP                  4       G Rj  xL
  S^,          oR#  L5irI   N)r   )
call_countr   
lock_counts   r   rb   2LockTests.test_cancel_release_race.<locals>.lockit   s.      !OJ,,.  !OJ !s   202c                  H   < SP                  4        S P                  4        R # r   )rW   rN   )r   rP   s   r   trigger3LockTests.test_cancel_release_race.<locals>.trigger   s    IIKLLNr
   N)r   r+   r   r   rL   r3   rV   rX   rY   rM   r   rj   rO   rW   )
r   r&   rb   rx   rQ   rR   rt   r   ru   rP   s
   &     @@@@r   test_cancel_release_race"LockTests.test_cancel_release_race   sM     '')||~

		 lln  *  *  * mmAww5566HH 7
 	Q'Q'4427795 			mmA'/ 	 	
  76 	sb   AGG A.GG<GG	G
GAG>GG&GGGG		Gc                  "   \         P                  ! 4       pVP                  4       G R j  xL
  V P                  VP	                  4       4       \         P
                  ! VP                  4       4      p\         P                  ! ^ 4      G R j  xL
  V P                  \        VP                  4      ^4       \         P
                  ! VP                  4       4      pVP                  4        VP                  4        \         P                  ! ^ 4      G R j  xL
  V P                  VP	                  4       4       V P                  VP                  4       4       VG R j  xL
  R #  EL7 L LS L5ir   )r   r   r   r   r!   rL   r3   rM   rh   rZ   rW   rN   rj   )r   r   rm   rn   s   &   r   test_finished_waiter_cancelled(LockTests.test_finished_waiter_cancelled   s     ||~lln&  0mmAT]]+Q/   0
		mmA&' % 	 	 	 	sH   )E+E"A E+E%BE+E'AE+E)E+%E+'E+)E+c                x   "   \         P                  ! 4       pV P                  \        VP                  4       R # 5ir   )r   r   rX   RuntimeErrorrN   r   s   & r   test_release_not_acquired#LockTests.test_release_not_acquired  s$     ||~,5s   8:c                  "   \         P                  ! 4       pVP                  4       G R j  xL
  V P                  VP	                  4       4       VP                  4        V P                  VP	                  4       4       R #  LT5ir   )r   r   r   r   r!   rN   r    r   s   & r   test_release_no_waiters!LockTests.test_release_no_waiters  sS     ||~lln&'	 	   )BB ABc                x  "   \         P                  ! 4       pV P                  VP                  4       4       T;_uu_4       GR j  xL
  V P	                  VP                  4       4       R R R 4      GR j  xL
  V P                  VP                  4       4       R #  LT L'  + GR j  xL 
 '       g   i     L>; i5ir   )r   r   r    r!   r   r   s   & r   test_context_managerLockTests.test_context_manager  se     ||~'44OODKKM* 4 	' 444N   AB:BB:	 B)B:4B5&B:B:B7	$B'%
B7	0B7	2B:r	   N)r,   
__module____qualname____firstlineno__r   r"   r/   r5   rS   r\   ro   rz   r}   r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      sI     4	(&,&1%f(-^+(Z.6
(( (r
   r   c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )

EventTestsi  c                   \         P                  ! 4       pV P                  \        V4      R 4       \        P                  \        V4      4      pV P                  VP                  R4      R4       VP                  4        V P                  \        V4      R4       V P                  \        P                  \        V4      4      4       VP                  P                  \        P                  ! 4       4       V P                  R\        V4      9   4       V P                  \        P                  \        V4      4      4       R# )z[unset]>extrasunsetz[set]>	waiters:1N)r   r(   r   r   r   r   rM   groupsetr   rZ   r;   r   Mock)r   evr   s   &  r   r   EventTests.test_repr  s    ]]_DHj1tBx(X.8
DHh/tBx01
499;'tBx/0tBx01r
   c                  a"   \         P                  ! 4       oV P                  SP                  4       4       . pV3R  lpV3R lpV3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P
                  ! ^ 4      G Rj  xL
  V P                  . V4       \         P                  ! V! V4      4      pSP                  4        \         P
                  ! ^ 4      G Rj  xL
  V P                  . ROV4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       R#  EL1 L5i)c                 v   <"   SP                  4       G R j  xL
 '       d   V P                  ^4       R # R #  L5ir   waitr;   r=   r   s   &r   r>    EventTests.test_wait.<locals>.c13  $     WWYa     97	99c                 v   <"   SP                  4       G R j  xL
 '       d   V P                  ^4       R # R #  L5ir   r   r   s   &r   rC    EventTests.test_wait.<locals>.c27  r   r   c                 v   <"   SP                  4       G R j  xL
 '       d   V P                  ^4       R # R #  L5ir   r   r   s   &r   rF    EventTests.test_wait.<locals>.c3;  r   r   N)rK   rI   rJ   )r   r(   r    is_setrL   r3   rM   r   r   rO   assertIsNoner=   )	r   r=   r>   rC   rF   rP   rQ   rR   r   s	   &       @r   	test_waitEventTests.test_wait-  s@    ]]_%	!	!	!   F,  F,mmAV$  F,
mmAF+	""))+&	""))+&	""))+& 	 	s&   BGGAG9G:CGGc                   "   \         P                  ! 4       pVP                  4        VP                  4       G R j  xL
 pV P	                  V4       R #  L5ir   )r   r(   r   r   r   )r   r   ress   &  r   test_wait_on_setEventTests.test_wait_on_setR  s7     ]]_
GGIo s   9AAAc                  "   \         P                  ! 4       p\         P                  ! VP                  4       4      p\         P                  ! 4       P                  VP                  4       V P                  \         P                  4      ;_uu_ 4        VG R j  xL
  R R R 4       V P                  VP                  4       R #  L)  + '       g   i     L/; i5ir   )r   r(   rL   r   r+   rV   rW   rX   rY   r    rZ   )r   r   r   s   &  r   test_wait_cancelEventTests.test_wait_cancelY  s     ]]_""2779-  ",,T[[9w5566JJ 7%  76s0   BCCCC%CCC	Cc                2  "   \         P                  ! 4       pV P                  VP                  4       4       VP	                  4        V P                  VP                  4       4       VP                  4        V P                  VP                  4       4       R # 5ir   )r   r(   r    r   r   r   clear)r   r   s   & r   
test_clearEventTests.test_clearb  s\     ]]_%
		$

%s   BBc                  a"   \         P                  ! 4       o. pV3R  lp\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  V P	                  . V4       SP                  4        SP                  4        V P                  SP                  4       4       SP                  4        SP                  4        V P	                  ^\        SP                  4      4       \         P                  ! ^ 4      G Rj  xL
  V P	                  ^.V4       V P	                  ^ \        SP                  4      4       V P                  VP                  4       4       V P                  VP                  4       4       R#  EL1 L5i)c                 r   <"   SP                  4       G R j  xL
 '       d   V P                  ^4       R#  L5ir9   r   r   s   &r   r>   .EventTests.test_clear_with_waiters.<locals>.c1p  s'     WWYa  rA   N)r   r(   rL   r3   rM   r   r   r    r   rh   rZ   r   rO   r=   )r   r=   r>   tr   s   &   @r   test_clear_with_waiters"EventTests.test_clear_with_waitersl  s    ]]_	
 6
+mmAV$


%

C,-mmA!f%C,-!
#! 	 	s&   AFFB3F
F
A=F
Fr	   N)r,   r   r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r     s)     2#'J&&$ $r
   r   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )ConditionTestsi  c                X  a"   \         P                  ! 4       o. pV3R  lpV3R lpV3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  V P	                  . V4       V P                  SP                  4       4       T P                  SP                  4       G Rj  xL
 4       SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  . V4       V P                  SP                  4       4       SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  ^.V4       V P                  SP                  4       4       SP                  ^4       \         P                  ! ^ 4      G Rj  xL
  V P	                  ^.V4       V P                  SP                  4       4       SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  ^^.V4       V P                  SP                  4       4       SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  . ROV4       V P                  SP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       R#  EL EL EL{ EL EL ELd EL5i)c                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d   V P                  ^4       R#  L5 L5ir9   r   r   r;   r=   conds   &r   r>   $ConditionTests.test_wait.<locals>.c1  ;     ,,.  YY[  a  ! $   AAAA	AAAc                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d   V P                  ^4       R#  L5 L5ir9   r   r   s   &r   rC   $ConditionTests.test_wait.<locals>.c2  r   r   c                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d   V P                  ^4       R#  L5 L5ir9   r   r   s   &r   rF   $ConditionTests.test_wait.<locals>.c3  r   r   NrH   )r   r'   rL   r3   rM   r    r!   r   r   notifyrN   rO   r=   	r   r=   r>   rC   rF   rP   rQ   rR   r   s	   &       @r   r   ConditionTests.test_wait  sz      "			   F,  F,  F,mmAV$'dlln,-mmAV$&mmA!f%&AmmA!f%&mmA!Q(&mmAF+&	"		$	"		$	"		$G 	 -
 	
 	
 	
 	s   BN*NAN*.N/1N* N!AN*?N A N* N!!AN* N$A N*!N'"C4N*N*N*N*!N*$N*'N*c                "  "   \         P                  ! 4       pVP                  4       G R j  xL
  \         P                  ! VP	                  4       4      p\         P
                  ! 4       P                  VP                  4       V P                  \         P                  4      ;_uu_ 4        VG R j  xL
  R R R 4       V P                  VP                  4       V P                  VP                  4       4       R #  L LJ  + '       g   i     LP; i5ir   )r   r'   r   rL   r   r+   rV   rW   rX   rY   r    rZ   r   r!   )r   r   r   s   &  r   r   ConditionTests.test_wait_cancel  s       "lln""499;/  ",,T[[9w5566JJ 7'& 	
  76s;   )DC8A=D)C</C:0C<4AD:C<<D	Dc                J  "   \         P                  ! 4       pVP                  4       G R j  xL
  V P                  VP	                  4       4       \         P
                  ! VP                  4       4      p\         P                  ! ^ 4      G R j  xL
  V P                  VP	                  4       4       VP                  4       G R j  xL
  V P                  VP	                  4       4       VP                  4        \         P                  ! 4       P                  VP                  4       \         P                  ! 4       P                  VP                  4        VG R j  xL
  V P                  VP	                  4       4       R #  ELT L L L,  \         P                   d     LAi ; i5ir   )r   r'   r   r   r!   rL   r   r3   r    r   r+   rV   rW   rN   rY   )r   r   	wait_tasks   &  r   test_wait_cancel_contested)ConditionTests.test_wait_cancel_contested  s      "lln&''		4	mmA' lln&  ",,Y-=-=>  ",,T\\:	OO
 	&) 	 	 	 %% 		sk   )F#E?A F#F6F#FBF#F FF "F#F#F#F F F#F  F#c                x  aa"   R o\         P                  ! 4       oVV3R lp\         P                  ! V! 4       4      p\         P                  ! ^ 4      G Rj  xL
  SP	                  4       G Rj  xL
  SP                  4        \         P                  ! ^ 4      G Rj  xL
  VP                  4        \         P                  ! ^ 4      G Rj  xL
  SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P                  VP                  4       4       V P                  S4       R#  L L L Lj L>5i)Fc                     <"   S ;_uu_4       GR j  xL
  RoS P                  4       G R j  xL
  R R R 4      GR j  xL
  R #  L0 L L
  + GR j  xL 
 '       g   i     R # ; i5ir9   r   )r   waiteds   r   wait_on_condBConditionTests.test_wait_cancel_after_notify.<locals>.wait_on_cond  s8     ttiik!! tt! tttsW   A&AA&A	AA	A&AA&A	A&	A#	A
A#	A#		A&N)
r   r'   rL   r3   r   r   rW   rN   r   rj   )r   r   waiterr   r   s   &  @@r   test_wait_cancel_after_notify,ConditionTests.test_wait_cancel_after_notify  s       "	" $$\^4mmAllnmmAmmAmmA((*+ 	sZ   AD:D0D:/D20-D:D4-D:D6-D:9D8:7D:2D:4D:6D:8D:c                   "   \         P                  ! 4       pV P                  \        4      ;_uu_ 4        VP	                  4       G R j  xL
  R R R 4       R #  L  + '       g   i     R # ; i5ir   )r   r'   rX   r   r   r   r   s   & r   test_wait_unacquired#ConditionTests.test_wait_unacquired  sI       "|,,))+ -, -,,s.   3A.A	A
A
A.AA+	%	A.c                2  aaa"   \         P                  ! 4       oR oV3R lo. pVV3R lp\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  V P	                  . V4       SP                  4       G Rj  xL
  SP                  4        SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  . V4       RoSP                  4       G Rj  xL
  SP                  4        SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  ^.V4       V P                  VP                  4       4       V P                  VP                  4       4       R#  EL* EL L L La5i)Fc                     < S # r   r	   )presults   r   	predicate/ConditionTests.test_wait_for.<locals>.predicate  s    Nr
   c                    <"   SP                  4       G R j  xL
  SP                  S4      G R j  xL
 '       d"   V P                  ^4       SP                  4        R#  LF L/5ir9   )r   wait_forr;   rN   )r=   r   r   s   &r   r>   (ConditionTests.test_wait_for.<locals>.c1  sG     ,,.  ]]9---a 	 !-s$   A"AA"A 	A"$A" A"NTr   r'   rL   r3   rM   r   r   rN   r   rO   r=   )r   r=   r>   r   r   r   r   s   &   @@@r   test_wait_forConditionTests.test_wait_for  s,      "	 	 6
+mmAV$llnmmAV$llnmmA!f%!
## 	 	 	 	 	s[   AF!F")FF=F	F
+F5F6=F3F4AFFFFFc                D  "   \         P                  ! 4       pVP                  R  4      G Rj  xL
 pV P                  . ROV4       V P	                  \
        4      ;_uu_ 4        VP                  R 4      G Rj  xL
  RRR4       R#  LZ L  + '       g   i     R# ; i5i)c                  
    . RO# )rI   rH   r	   r	   r
   r   <lambda>9ConditionTests.test_wait_for_unacquired.<locals>.<lambda>6  s    )r
   Nc                      R # )Fr	   r	   r
   r   r   r   :  s    r
   rH   )r   r'   r   rM   rX   r   )r   r   r   s   &  r   test_wait_for_unacquired'ConditionTests.test_wait_for_unacquired2  sw       " MM"344C(|,,--... -, 5 / -,,s9   +B B5B #B9B
:B>B 
BB		B c                  a"   \         P                  ! 4       o. pV3R  lpV3R lpV3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  V P	                  . V4       SP                  4       G Rj  xL
  SP                  ^4       SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  ^.V4       SP                  4       G Rj  xL
  SP                  ^4       SP                  R4       SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  . ROV4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       R#  EL EL ELV EL. L5i)c                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d"   V P                  ^4       SP                  4        R#  LE L/5ir9   r   r   r;   rN   r   s   &r   r>   &ConditionTests.test_notify.<locals>.c1@  D     ,,.  YY[  a 	 ! $   A!AA!A	A!$A!A!c                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d"   V P                  ^4       SP                  4        R#  LE L/5ir9   r   r   s   &r   rC   &ConditionTests.test_notify.<locals>.c2G  r   r   c                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d"   V P                  ^4       SP                  4        R#  LE L/5ir9   r   r   s   &r   rF   &ConditionTests.test_notify.<locals>.c3N  r   r   Ni   rH   r   r   s	   &       @r   test_notifyConditionTests.test_notify<  s      "			   F,  F,  F,mmAV$llnAmmA!f%llnADmmAF+	"		$	"		$	"		$+ 	 	 	 	 	s\   BI!I)I!I>I!I*I!.I/AI!>I?CI!I!I!I!I!c                  a"   \         P                  ! 4       o. pV3R  lpV3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  V P	                  . V4       SP                  4       G Rj  xL
  SP                  4        SP                  4        \         P                  ! ^ 4      G Rj  xL
  V P	                  ^^.V4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       4       R#  L L L5i)c                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d"   V P                  ^4       SP                  4        R#  LE L/5ir9   r   r   s   &r   r>   *ConditionTests.test_notify_all.<locals>.c1u  r   r   c                    <"   SP                  4       G R j  xL
  SP                  4       G R j  xL
 '       d"   V P                  ^4       SP                  4        R#  LE L/5ir9   r   r   s   &r   rC   *ConditionTests.test_notify_all.<locals>.c2|  r   r   N)r   r'   rL   r3   rM   r   
notify_allrN   r   rO   r=   )r   r=   r>   rC   rP   rQ   r   s   &     @r   test_notify_allConditionTests.test_notify_allp  s      "		   F,  F,mmAV$llnmmA!Q(	"		$	"		$ 	 	 	s7   A5E=8E79)E="E9#=E= E;!BE=9E=;E=c                p    \         P                  ! 4       pV P                  \        VP                  4       R # r   )r   r'   rX   r   r   r   s   & r   test_notify_unacquired%ConditionTests.test_notify_unacquired  s$      ",4r
   c                p    \         P                  ! 4       pV P                  \        VP                  4       R # r   )r   r'   rX   r   r  r   s   & r   test_notify_all_unacquired)ConditionTests.test_notify_all_unacquired  s$      ",8r
   c                  "   \         P                  ! 4       pV P                  R \        V4      9   4       V P                  \        P                  \        V4      4      4       VP                  4       G Rj  xL
  V P                  R\        V4      9   4       VP                  P                  \        P                  ! 4       4       V P                  R\        V4      9   4       V P                  \        P                  \        V4      4      4       VP                  P                  \        P                  ! 4       4       V P                  R\        V4      9   4       V P                  \        P                  \        V4      4      4       R#  EL5i)unlockedNr!   r   	waiters:2)r   r'   r   r   r   r   r   rZ   r;   r   r   r   s   & r   r   ConditionTests.test_repr  s       "
d4j01tDz23llnDJ./TYY[)tDz12tDz23TYY[)tDz12tDz23 	s   A3F5F	6DFc                x  "   \         P                  ! 4       pV P                  VP                  4       4       T;_uu_4       GR j  xL
  V P	                  VP                  4       4       R R R 4      GR j  xL
  V P                  VP                  4       4       R #  LT L'  + GR j  xL 
 '       g   i     L>; i5ir   )r   r'   r    r!   r   r   s   & r   r   #ConditionTests.test_context_manager  sf       "'44OODKKM* 4' 444r   c                  a "   RV 3R llpV! 4       G R j  xL
  V! \         P                  ! 4       4      G R j  xL
  \         P                  ! 4       pV! V\         P                  ! V4      4      G R j  xL
  R #  Lc LB L
5i)Nc                 (  <"   V f   \         P                  ! 4       p Vf   \         P                  ! V 4      pSP                  VP                  V 4       SP                  V P                  4       4       SP                  VP                  4       4       T;_uu_4       GR j  xL
  SP                  V P                  4       4       SP                  VP                  4       4       R R R 4      GR j  xL
  SP                  V P                  4       4       SP                  VP                  4       4       T ;_uu_4       GR j  xL
  SP                  V P                  4       4       SP                  VP                  4       4       R R R 4      GR j  xL
  SP                  V P                  4       4       SP                  VP                  4       4       R #  EL2 L  + GR j  xL 
 '       g   i     L; i L Lg  + GR j  xL 
 '       g   i     L~; i5ir   )r   r   r'   assertIs_lockr    r!   r   )r   r   r   s   &&r   f,ConditionTests.test_explicit_lock.<locals>.f  s4    |||~|((.MM$**d+T[[]+T[[]+tt.. t T[[]+T[[]+tt.. t T[[]+T[[]+ ttt
 ttts   BHG H#?G"H-G.AH>G2?H?G6HG4AHHG/	G
G/	(G/	*	H4H6H	<G?=
H	H	
H)NN)r   r   r'   )r   r  r   s   f  r   test_explicit_lock!ConditionTests.test_explicit_lock  s[     	,( c		||~g''-... 	.s1   B A:"B A<9B 3A>4B <B >B c                   a a"   \         P                  ! 4       oS P                  SP                  4       VV 3R  lpVV 3R lpV! 4       G Rj  xL
  V! 4       G Rj  xL
  R#  L L5i)c            	      D  <"   SP                  \        4      ;_uu_ 4        \        P                  ! SR 7       RRR4       \        P                  ! 4       p SV n        T ;_uu_4       GRj  xL
  \        P
                  ! V 4      pSP                  \        R4      ;_uu_ 4        VP                  4       G Rj  xL
  RRR4       RRR4      GRj  xL
  R#   + '       g   i     L; i L~ L3  + '       g   i     L9; i L0  + GRj  xL 
 '       g   i     R# ; i5i)r%   N"is bound to a different event loop)	rX   r   r   r   _loopr'   r   r   r   r   r   r&   r   s     r   wrong_loop_in_lock?ConditionTests.test_ambiguous_loops.<locals>.wrong_loop_in_lock  s     ""9--$' .<<>DDJtt ((. ++ 8  ,,.((	 tt	 .-  )	  ttts   D C2D +C*,D /5D$C.	8C,9C.	=DD DD C'	"	D ,C.	.C>9DD D		D

D	D		D c            	      F  <"   \         P                  ! 4       p T ;_uu_4       GR j  xL
  SP                  \        4      ;_uu_ 4        \         P                  ! V SR7       R R R 4       \         P                  ! V 4      pSVn        SP                  \        R4      ;_uu_ 4        VP                  4       G R j  xL
  R R R 4       R R R 4      GR j  xL
  R #  L  + '       g   i     L; i L3  + '       g   i     L9; i L0  + GR j  xL 
 '       g   i     R # ; i5i)Nr%   r  )	r   r   rX   r   r'   r  r   r   r   r   s     r   wrong_loop_in_cond?ConditionTests.test_ambiguous_loops.<locals>.wrong_loop_in_cond  s     <<>Dtt&&y11%%d6 2((.!
++ 8  ))+%%	 tt11 &	  ttts   $D!CD!D	C	"AD%C/	9C-:C/	>DD!DD!C*%D-C/	/C?:DD!D	
D
D	D		D!N)r   new_event_loop
addCleanupclose)r   r!  r$  r&   s   f  @r   test_ambiguous_loops#ConditionTests.test_ambiguous_loops  sP     %%'

#	)"	& !""" """ 	#"s$   A	A'A#A'A%A'%A'c           	       "   \         P                  ! 4       pT;_uu_4       GR j  xL
  V P                  \         P                  4      ;_uu_ 4        \         P                  ! VP                  4       RR7      G R j  xL
  R R R 4       R R R 4      GR j  xL
  R #  Lt L   + '       g   i     L&; i L  + GR j  xL 
 '       g   i     R # ; i5i)Ng      ?timeout)r   r'   rX   TimeoutErrorr   r   )r   	conditions   & r   test_timeout_in_block$ConditionTests.test_timeout_in_block  ss     %%'	99""7#7#788&&y~~'7EEE 9 99E 98 999st   $CBC(B4*B	<B=B	B4	CB2CB	B/*B42C4C	:B=;
C	C		Cc                  a aaa"   R oRo\         P                  ! 4       oVVV V3R lp\         P                  ! V! 4       4      p\         P                  ! ^ 4      G Rj  xL
  VP	                  RR7       S P                  \         P                  4      ;_uu_ 4       pVG Rj  xL
  RRR4       S P                  XP                  P                  R4       S P                  VP                  S4       R#  L LR  + '       g   i     LX; i5i)FNc            	      P  <"   S;_uu_4       GR j  xL
  SP                  \        P                  4      ;_uu_ 4       p SP                  V3R l4      G R j  xL
  R R R 4       X P                  oSh L_ L  + '       g   i     L"; i  + GR j  xL 
 '       g   i     R # ; i5i)Nc                     < S # r   r	   wakes   r   r   JConditionTests.test_cancelled_error_wakeup.<locals>.func.<locals>.<lambda>      r
   rX   r   rY   r   	exceptionerrr   raisedr   r6  s    r   func8ConditionTests.test_cancelled_error_wakeup.<locals>.func   g     tt&&w'='=>>#--555 ?	 5 ?> ttta   B&A2B&(B	A6	A4A6	B	2B&4A6	6BB		B#	B
B#	B#		B&foomsgrB  )r   r'   rL   r3   rW   rX   rY   rM   r:  argsr  r   r>  r[   r<  r   r=  r6  s   f   @@@r   test_cancelled_error_wakeup*ConditionTests.test_cancelled_error_wakeup  s        "	 	 ""46*mmAw5566#JJ 7++X6 	cmmV, 	  76s=   AD	C2=D	C6!C4"C6&AD	4C66D	D	c                  a aaa"   R oRo\         P                  ! 4       oVVV V3R lp\         P                  ! V! 4       4      p\         P                  ! ^ 4      G Rj  xL
  SP	                  4       G Rj  xL
  RoSP                  4        \         P                  ! ^ 4      G Rj  xL
  VP                  RR7       SP                  4        S P                  \         P                  4      ;_uu_ 4       pVG Rj  xL
  RRR4       S P                  XP                  P                  R4       S P                  VP                  S4       R#  L L L LV  + '       g   i     L\; i5i)FNc            	      P  <"   S;_uu_4       GR j  xL
  SP                  \        P                  4      ;_uu_ 4       p SP                  V3R l4      G R j  xL
  R R R 4       X P                  oSh L_ L  + '       g   i     L"; i  + GR j  xL 
 '       g   i     R # ; i5i)Nc                     < S # r   r	   r5  s   r   r   MConditionTests.test_cancelled_error_re_aquire.<locals>.func.<locals>.<lambda>  r8  r
   r9  r;  s    r   r>  ;ConditionTests.test_cancelled_error_re_aquire.<locals>.func  r@  rA  TrB  rC  rE  )r   r'   rL   r3   r   r   rW   rN   rX   rY   rM   r:  rF  r  rG  s   f   @@@r   test_cancelled_error_re_aquire-ConditionTests.test_cancelled_error_re_aquire  s       "	 	 ""46*mmAllnmmAw5566#JJ 7++X6 	cmmV, 	 	
  76sb   AE%E
E%5E6/E%%E&AE%3E9E:E>AE%E%E%EE"	E%c           
     d  aa"   \         P                  ! 4       o^ oVV3R lp\        ^4       Uu. uF  p\         P                  ! V! 4       4      NK   	  pp\         P                  ! ^ 4      G Rj  xL
  S;_uu_4       GRj  xL
  S^,          oSP                  ^4       V^ ,          P                  4         \         P                  ! R4      ;_uu_4       GRj  xL
  SP                  V3R l4      G Rj  xL
  RRR4      GRj  xL
  T P                  S^ 4       RoSP                  4        RRR4      GRj  xL
  T^,          G Rj  xL
  R# u upi  L L L Lf LX  + GRj  xL 
 '       g   i     Lo; i  \         d     Li ; i LS  + GRj  xL 
 '       g   i     Lj; i L`5i)r   c                     <"   S ;_uu_4       GR j  xL
   S P                  V3R l4      G R j  xL
  S^ 8  d    R R R 4      GR j  xL
  R # S^,          oKC   LG L+ L  + GR j  xL 
 '       g   i     R # ; i5i)Nc                     < S ^ 8g  # r   r	   states   r   r   HConditionTests.test_cancelled_wakeup.<locals>.consumer.<locals>.<lambda>>  	    UaZr
   r   r/  rV  s   r   consumer6ConditionTests.test_cancelled_wakeup.<locals>.consumer:  V      yy#,,-?@@@qy	 !yy
 QJE !@ !yyye   A=AA=A AA A=A	A=A A=A A= A:	&A)'
A:	2A:	4	A=Nr2   c                     < S ^ 8H  # rT  r	   rU  s   r   r   6ConditionTests.test_cancelled_wakeup.<locals>.<lambda>U  rX  r
   r   r'   rangerL   r3   r   rW   r-  r   r.  rM   r  r   r[  _cr/  rV  s   &   @@r   test_cancelled_wakeup$ConditionTests.test_cancelled_wakeup3  s8    
 %%'		 7<Ah?hW  ,h?mmA99QJEQ aDKKM
"??4000#,,-?@@@ 10 UA& E  "+ 9, d

3 @ 1@ 1000  999, 	s  ,F0$EF0/E0F0EF02F9"E?EE?E#	8E9E#	=E?E!	E?$F1F0<F=F0F.F0F0E?E#	!E?#E<)E,*
E<5E<7E?;F<E??F
FFFF0F+	F
F+	$F+	&	F0c           
       aa"   \         P                  ! 4       o^ oVV3R lp\        ^4       Uu. uF  p\         P                  ! V! 4       4      NK   	  pp\         P                  ! ^ 4      G Rj  xL
  S;_uu_4       GRj  xL
  S^,          oSP                  ^4       \         P                  ! ^ 4      G Rj  xL
  V^ ,          P                  4         \         P                  ! R4      ;_uu_4       GRj  xL
  SP                  V3R l4      G Rj  xL
  RRR4      GRj  xL
  T P                  S^ 4       RoSP                  4        RRR4      GRj  xL
  T^,          G Rj  xL
  R# u upi  EL L L L Li L[  + GRj  xL 
 '       g   i     Lr; i  \         d     Li ; i LV  + GRj  xL 
 '       g   i     Lm; i Lc5i)r   c                     <"   S ;_uu_4       GR j  xL
   S P                  V3R l4      G R j  xL
  S^ 8  d    R R R 4      GR j  xL
  R # S^,          oKC   LG L+ L  + GR j  xL 
 '       g   i     R # ; i5i)Nc                     < S ^ 8g  # rT  r	   rU  s   r   r   OConditionTests.test_cancelled_wakeup_relock.<locals>.consumer.<locals>.<lambda>j  rX  r
   rY  rZ  s   r   r[  =ConditionTests.test_cancelled_wakeup_relock.<locals>.consumerf  r]  r^  Nr2   c                     < S ^ 8H  # rT  r	   rU  s   r   r   =ConditionTests.test_cancelled_wakeup_relock.<locals>.<lambda>  rX  r
   ra  rb  rd  s   &   @@r   test_cancelled_wakeup_relock+ConditionTests.test_cancelled_wakeup_relock_  sQ    
 %%'		 7<Ah?hW  ,h?mmA99QJEQ --""" aDKKM
"??4000#,,-?@@@ 10 UA& E  "3 94 d

; @ # 1@ 1000 ' 9994 	s  ,G$E2G/E70GE:G4F3:E<;F3"F 9E>:F =F	F F	F &F'F +$F3GF1G+G,G:G<F3>F  F	F F
F
FFF F3F  F.+F3-F..F31G3G	9F<:
G	G		Gr	   N)r,   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r   r   r  r)  r0  rH  rO  rg  rp  r   r   r   s   @r   r   r     sv     =%~	''2 4
#$J/2%h"%H594 (/4$#LF-4-@*X. .r
   r   c                   z   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tRtV tR# )SemaphoreTestsi  c                p    \         P                  ! ^ 4      pV P                  VP                  4       4       R# )r   N)r   r)   r   r!   r   sems   & r   test_initial_value_zero&SemaphoreTests.test_initial_value_zero  s$    "

%r
   c                  "   \         P                  ! 4       pV P                  \        V4      R 4       V P	                  \
        P                  \        V4      4      4       VP                  4       G Rj  xL
  V P                  \        V4      R4       V P	                  R\        V4      9  4       V P	                  \
        P                  \        V4      4      4       VP                  f   \        P                  ! 4       Vn        VP                  P                  \        P                  ! 4       4       V P	                  R\        V4      9   4       V P	                  \
        P                  \        V4      4      4       VP                  P                  \        P                  ! 4       4       V P	                  R\        V4      9   4       V P	                  \
        P                  \        V4      4      4       R#  EL5i)z[unlocked, value:1]>Nr   waitersr   r  )r   r)   r   r   r   r   r   r   rZ   collectionsdequer;   r   r   ru  s   & r   r   SemaphoreTests.test_repr  s=    !DI'=>tCy12kkmDI{3	c23tCy12<<&,,.CLDIIK(tCy01tCy12DIIK(tCy01tCy12 	s   A1G:3G74FG:c                r  "   \         P                  ! 4       pV P                  ^VP                  4       V P	                  \
        R4      ;_uu_ 4        VG Rj  xL
  RRR4       V P                  VP                  4       4       V P                  ^VP                  4       R#  LI  + '       g   i     LO; i5i)rI   z#'Semaphore' object can't be awaitedN)r   r)   rM   _valuer   r   r    r!   ru  s   & r   test_semaphoreSemaphoreTests.test_semaphore  s     !CJJ'##1
 
 II	
 	&CJJ' 	
 
s1   AB7B$B"B$AB7"B$$B4	/B7c                P    V P                  \        \        P                  R4       R# )rI   Nra  )rX   
ValueErrorr   r)   r   s   &r   test_semaphore_value#SemaphoreTests.test_semaphore_value  s    *g&7&7<r
   c                  a"   \         P                  ! ^4      o. pT P                  SP                  4       G Rj  xL
 4       T P                  SP                  4       G Rj  xL
 4       V P	                  SP                  4       4       V3R lpV3R lpV3R lpV3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  V P                  ^.V4       V P                  SP                  4       4       V P                  ^\        SP                  4      4       V P                  ^ SP                  4       \         P                  ! V! V4      4      p	SP                  4        SP                  4        V P                  ^ SP                  4       \         P                  ! ^ 4      G Rj  xL
  V P                  ^ SP                  4       V P                  ^\        V4      4       V P                  SP                  4       4       V P                  ^\        SP                  4      4       V P                  ^ SP                  4       V P                  VP                  4       4       V P                  VP                  4       4       WxV	.p
V
 Uu. uF4  qP                  4       '       g   K  VP                  4       '       g   K2  VNK6  	  ppV P                  ^\        V4      4       SP                  4        \         P                  ! V
!  G Rj  xL
  R#  EL$ EL  ELV ELpu upi  L5i)rK   Nc                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r=   rv  s   &r   r>   'SemaphoreTests.test_acquire.<locals>.c1  )     ++-MM!     1/1c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   rC   'SemaphoreTests.test_acquire.<locals>.c2  r  r  c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   rF   'SemaphoreTests.test_acquire.<locals>.c3  r  r  c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   c4'SemaphoreTests.test_acquire.<locals>.c4  r  r  )r   r)   r   r   r    r!   rL   r3   rM   rh   rZ   r  rN   rO   r=   gather)r   r=   r>   rC   rF   r  rP   rQ   rR   t4
race_tasksr   
done_tasksrv  s   &            @r   rS   SemaphoreTests.test_acquire  sc    "ckkm+,ckkm+,&	
	
	
	
   F,  F,  F,mmA!f%

%C-.CJJ'  F,CJJ'mmACJJ'CK(

%C-.CJJ'	"		$b\
!+GAvvxaAHHJaa
GC
O, 	nnj)))o ,+6 	 	 H
 	*ss   7M1M&M1!M!"B,M1M$C(M17M'8C!M1M*5M*M*AM1M/M1!M1$M1'M1*M1c                  "   \         P                  ! 4       pVP                  4       G R j  xL
  \         P                  ! VP                  4       4      p\         P                  ! 4       P                  VP                  4       V P                  \         P                  4      ;_uu_ 4        VG R j  xL
  R R R 4       T P                  VP                  '       * ;'       gU    \        ;QJ d2    R VP                   4       F  '       d   K   R4       R # 	  R4       R # ! R VP                   4       4      4       R #  EL L  + '       g   i     L; i5i)Nc              3   @   "   T F  qP                  4       x  K  	  R # 5ir   rO   ).0r   s   & r   	<genexpr>5SemaphoreTests.test_acquire_cancel.<locals>.<genexpr>   s     EfKKMM   FT)r   r)   r   rL   r+   rV   rW   rX   rY   r   rZ   all)r   rv  r   s   &  r   r\   "SemaphoreTests.test_acquire_cancel  s     !kkm%%ckkm4  ",,W^^<w5566MM 7S\\) F FEE	G	GEEE	G 	
  76sL   )ED:A=E)D?/D=0D?4*EE+E	2E=D??E	
Ec                  "   \         P                  ! ^ R7      p\         P                  ! VP                  4       4      p\         P                  ! VP                  4       4      p\         P                  ! VP                  4       4      p\         P                  ! VP                  4       4      p\         P                  ! ^ 4      G Rj  xL
  VP                  4        VP                  4        VP                  4        \         P                  ! ^ 4      G Rj  xL
  \         P                  ! ^ 4      G Rj  xL
  \        R WE3 4       4      pV P                  V^4       V P                  VP                  4       4       V P                  VP                  4       4       VP                  4        VP                  4        \         P                  ! ^ 4      G Rj  xL
  R#  EL L L L5i)r   valueNc              3   @   "   T F  qP                  4       x  K  	  R # 5ir   r  )r  r   s   & r   r  CSemaphoreTests.test_acquire_cancel_before_awoken.<locals>.<genexpr>  s     2Avvxxr  )r   r)   rL   r   r3   rW   rN   sumrM   r   rO   r    )r   rv  rP   rQ   rR   r  num_dones   &      r   !test_acquire_cancel_before_awoken0SemaphoreTests.test_acquire_cancel_before_awoken  s<    a(  /  /  /  /mmA
		
		mmAmmA2"221%	"#
		
		mmA 	 	 	sJ   CG GAG GG /G0B G GG G G G c                H  "   \         P                  ! ^ R7      p\         P                  ! VP                  4       4      p\         P                  ! VP                  4       4      p\         P                  ! ^ 4      G Rj  xL
  VP                  4        VP                  4        \         P                  ! ^ 4      G Rj  xL
  \         P                  ! ^ 4      G Rj  xL
  V P                  VP                  4       4       V P                  VP                  4       4       R#  L Ld LH5i)r   r  N)
r   r)   rL   r   r3   rW   rN   r   r!   rO   )r   rv  rP   rQ   s   &   r   test_acquire_hang SemaphoreTests.test_acquire_hang  s     a(  /  /mmA
		mmAmmA

%	" 	 	s7   A9D";D<=D"9D:D"D AD"D" D"c                  a aa"   \         P                  ! ^4      oVV3R lpV V3R lp\         P                  ! V! 4       4      p\         P                  ! V! 4       4      o\         P                  ! VSRR7      G Rj  xL
 w  rES P	                  VRJ 4       S P	                  \        V\         P                  4      4       \         P                  ! SP                  4       RR7      G Rj  xL
  R#  Lr L5i)rI   c                     <"   S ;_uu_4       GR j  xL
  \         P                  ! ^ 4      G R j  xL
  R R R 4      GR j  xL
  SP                  4        R #  LD L( L  + GR j  xL 
 '       g   i     L1; i5ir   )r   r3   rW   )rv  rQ   s   r   r>   /SemaphoreTests.test_acquire_no_hang.<locals>.c1-  sB     ssmmA&&& sIIK & ssssY   A9AA9AAAA9 AA9AA9A6	#A&$
A6	/A6	1A9c                     <"   S;_uu_4       GR j  xL
  S P                  R4       R R R 4      GR j  xL
  R #  L' L  + GR j  xL 
 '       g   i     R # ; i5ir9   )r    ru  s   r   rC   /SemaphoreTests.test_acquire_no_hang.<locals>.c22  s*     ss  & sssssB   A:A>A<AAA	A
A	A		AT)return_exceptionsNg      ?r,  )	r   r)   rL   r  r   
isinstancerY   r   r   )r   r>   rC   rP   r1r2rv  rQ   s   f     @@r   test_acquire_no_hang#SemaphoreTests.test_acquire_no_hang)  s     "	
	'   &  &~~b"EEd
#
2w'='=>?s{{}c:::	 F 	;s%   A7C3<C/=A+C3(C1)C31C3c                p    \         P                  ! 4       pV P                  \        VP                  4       R # r   )r   r*   rX   r  rN   ru  s   & r   r   (SemaphoreTests.test_release_not_acquired?  s$    &&(*ckk2r
   c                  "   \         P                  ! 4       pVP                  4       G R j  xL
  V P                  VP	                  4       4       VP                  4        V P                  VP	                  4       4       R #  LT5ir   )r   r)   r   r   r!   rN   r    ru  s   & r   r   &SemaphoreTests.test_release_no_waitersD  sV     !kkm

%&	 	r   c                  aa"   \         P                  ! ^4      o. oVV3R lp\         P                  ! 4       ;_uu_4       GRj  xL
 pVP                  V! R4      4       VP                  V! R4      4       VP                  V! R4      4       RRR4      GRj  xL
  V P	                  . ROS4       R#  Lo L  + GRj  xL 
 '       g   i     L3; i5i)rI   c                   <"   SP                  4       G R j  xL
  SP                  V  R24       \        P                  ! R4      G R j  xL
  SP	                  4        SP                  4       G R j  xL
  SP                  V  R24       \        P                  ! R4      G R j  xL
  SP	                  4        R #  L Lr LL L5i)N_1r2   _2)r   r;   r   r3   rN   )tagr=   rv  s   &r   coro4SemaphoreTests.test_acquire_fifo_order.<locals>.coroP  s     ++-MMSE*%--%%%KKM++-MMSE*%--%%%KKM  %  %sE   CB:1C	B<
'C1B>21C#C $C<C>C CNr>   rC   rF   )c1_1c2_1c3_1c1_2c2_2c3_2)r   r)   	TaskGrouprL   rM   )r   r  tgr=   rv  s   &  @@r   test_acquire_fifo_order&SemaphoreTests.test_acquire_fifo_orderL  s     "		 $$&&&"NN4:&NN4:&NN4:& '&
 	<	
 '&&&sO   ACB5C	AB9CB7C7C9C	?C 
C	C	Cc                  a	"   \         P                  ! ^4      o	. pV	3R lpV	3R lpV	3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  S	P	                  4        S	P	                  4        WVV.p\         P
                  ! V!  G Rj  xL
  V P                  . ROV4       R#  LZ L5i)rI   c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   r>   4SemaphoreTests.test_acquire_fifo_order_2.<locals>.c1i  r  r  c                    <"   SP                  4       G R j  xL
  V P                  ^4       SP                  4        SP                  4       G R j  xL
  V P                  ^4       R#  LP L5ir9   )r   r;   rN   r  s   &r   rC   4SemaphoreTests.test_acquire_fifo_order_2.<locals>.c2n  sR     ++-MM!KKM++-MM!    s!   A,A(8A,A*A,*A,c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   rF   4SemaphoreTests.test_acquire_fifo_order_2.<locals>.c3v  r  r  NrI   rJ   rK      )r   r)   rL   r3   rN   r  rM   
r   r=   r>   rC   rF   rP   rQ   rR   tasksrv  s
   &        @r   test_acquire_fifo_order_2(SemaphoreTests.test_acquire_fifo_order_2e  s     "	
		
   F,  F,  F,mmAnne$$$v. 	 	%s$   BC:C6?C:C8C:8C:c                \  a	"   \         P                  ! ^ 4      o	. pV	3R lpV	3R lpV	3R lp\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! ^ 4      G Rj  xL
  VP	                  4        \         P                  ! ^ 4      G Rj  xL
  S	P                  4        S	P                  4        WVV.p\         P                  ! VRR/ G Rj  xL
  V P                  ^^.V4       R#  L L^ L5i)r   c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   r>   4SemaphoreTests.test_acquire_fifo_order_3.<locals>.c1  r  r  c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   rC   4SemaphoreTests.test_acquire_fifo_order_3.<locals>.c2  r  r  c                 f   <"   SP                  4       G R j  xL
  V P                  ^4       R#  L5ir9   r:   r  s   &r   rF   4SemaphoreTests.test_acquire_fifo_order_3.<locals>.c3  r  r  Nr  T)r   r)   rL   r3   rW   rN   r  rM   r  s
   &        @r   test_acquire_fifo_order_3(SemaphoreTests.test_acquire_fifo_order_3  s     "	
	
	
   F,  F,  F,mmA
		mmAnne<t<<<!Q( 	 	 	=s7   BD,D&-D,	D(
AD,D*D,(D,*D,c                  a a
aa"   \         P                  ! ^ 4      o. p^ pV
V VV3R lpV V3R lpV V3R lpR o
\         P                  ! V! V4      4      p\         P                  ! V! V4      4      p\         P                  ! V! V4      4      pRo\         P                  ! ^ 4      G Rj  xL
  S P	                  SP
                  ^4       S P	                  \        SP                  4      ^4       \         P                  ! ^ 4      G Rj  xL
  WgVS.p	\         P                  ! V	!  G Rj  xL
  S P	                  . ROV4       R#  L L= L5i)r   c                   <"   SP                  SP                  ^ 4       SP                  4       G Rj  xL
  SP                  SP                  ^ 4       \        P                  ! S! V 4      4      oV P                  ^4       R#  LO5i)r   NT)rM   r  r   r   rL   r;   )r=   r  r   rv  r  s   &r   r>   4SemaphoreTests.test_acquire_fifo_order_4.<locals>.c1  sg     SZZ+++-SZZ+ $$RZ0BMM!  s   0BBABc                 <  <"   SP                  4        SP                  4        SP                  4        SP                  SP                  ^4       SP                  SP	                  4       4       SP                  4       G Rj  xL
  V P                  ^4       R#  L5i)rJ   NT)rN   rM   r  r   r!   r   r;   r=   r   rv  s   &r   rC   4SemaphoreTests.test_acquire_fifo_order_4.<locals>.c2  sl      KKMKKMKKMSZZ+OOCJJL)++-MM!  s   A?BBBc                    <"   SP                  4       G R j  xL
  SP                  SP                  4       4       V P                  ^4       R#  L65ir9   )r   r   r!   r;   r  s   &r   rF   4SemaphoreTests.test_acquire_fifo_order_4.<locals>.c3  s;     ++-OOCJJL)MM!  s   AA7Ac                 0   "   V P                  ^4       R# 5i)r  Tr;   )r=   s   &r   r  4SemaphoreTests.test_acquire_fifo_order_4.<locals>.c4  s     MM!s   Nr  )	r   r)   rL   r3   rM   r  rh   rZ   r  )r   r=   countr>   rC   rF   rP   rQ   rR   r  r  rv  r  s   f         @@@r   test_acquire_fifo_order_4(SemaphoreTests.test_acquire_fifo_order_4  s     "
	 
				   F,  F,  F,mmAQ'S\\*A.mmAR nne$$$v. 	 	 	%s7   B$E*E+AE	E
 E*E	+EE	Er	   N)r,   r   r   r   rw  r   r  r  rS   r\   r  r  r  r   r   r  r  r  r  r   r   r   s   @r   rs  rs    sY     &3*(=;*z	G2#;,3
'
2!/F")H7/ 7/r
   rs  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtVtV ;t# )BarrierTestsi  c                N   <"   \         SV `  4       G R j  xL
  ^V n        R #  L5ir   )super
asyncSetUpN)r   	__class__s   &r   r  BarrierTests.asyncSetUp  s#     g """ 	#s   %#%c                v    \        V4       Uu. uF  p\        P                  ! V! 4       4      NK   	  ppV# u upi r   )rc  r   rL   )r   nr  re  r  s   &&&  r   
make_tasksBarrierTests.make_tasks  s2    6;Ah?h$$TV,h? @s   $6c                n   "   V P                  W4      p\        P                  ! V!  G R j  xL
 pWC3#  L5ir   )r  r   r  )r   r  r  r  r   s   &&&  r   gather_tasksBarrierTests.gather_tasks  s1     (NNE**z +s   )535c                F  "   \         P                  ! V P                  4      pV P                  R \	        V4      4       V P                  \        R4      ;_uu_ 4        VG Rj  xL
  RRR4       V P                  R \	        V4      4       R#  L)  + '       g   i     L/; i5i)fillingz!'Barrier' object can't be awaitedN)r   Barrierr  assertInr   r   r   r   barriers   & r   test_barrierBarrierTests.test_barrier  ss     //$&&)ig/##/
 
 MM	
 	ig/ 	
 
s0   AB!B"B#B'%B!BB	B!c                  "   \         P                  ! V P                  4      pV P                  \        P                  \        V4      4      4       V P                  R \        V4      4       . pR p^p\        V4       F.  pVP                  \         P                  ! V! V4      4      4       K0  	  \         P                  ! ^ 4      G Rj  xL
  V P                  \        P                  \        V4      4      4       V P                  RV RV P                   2\        V4      9   4       V P                  R \        V4      4       \        VP                  VP                  ,
          4       F.  pVP                  \         P                  ! V! V4      4      4       K0  	  \         P                  ! ^ 4      G Rj  xL
  V P                  \        P                  \        V4      4      4       V P                  R\        V4      4       \        V4       F.  pVP                  \         P                  ! V! V4      4      4       K0  	  \         P                  ! ^ 4      G Rj  xL
  VP                  4       G Rj  xL
  V P                  \        P                  \        V4      4      4       V P                  R\        V4      4       \        V4       F.  pVP                  \         P                  ! V! V4      4      4       K0  	  \         P                  ! ^ 4      G Rj  xL
  VP                  4       G Rj  xL
  V P                  \        P                  \        V4      4      4       V P                  R\        V4      4       V P                  VP                   4       \         P"                  ! VRR	/ G Rj  xL
  R#  EL EL ELa ELL L L L5i)
r  c                 B   "   V P                  4       G R j  xL
  R #  L5ir   r   r  s   &r   r   $BarrierTests.test_repr.<locals>.wait  s     ,,.  s   Nzwaiters:/draining	resettingbrokenr  T)r   r  r  r   r   r   r   r  rc  r;   rL   r3   parties	n_waitingresetabortr  r  )r   r  rz  r   incris   &     r   r   BarrierTests.test_repr  s    //$&&)tG}56ig/	! tANN7..tG}=> mmAtG}56(4&$&&2d7mCDig/ w):)::;ANN7..tG}=> <mmAtG}56j$w-0 tANN7..tG}=> mmAmmotG}56k4=1 tANN7..tG}=> mmAmmotG}56hW.' nng>>>>I 	 	 	 	 	?s   CON1	C*O3N44B"ON7O.N:/B"ON=O)N?*B O*O+O4O7O:O=O?OOc                   "   V P                  \        R  4       V P                  \        R 4       V P                  \        P                  ! V P
                  4      \        P                  4       R# 5i)c                  .    \         P                  ! ^ 4      # rT  r   r  r	   r
   r   r   3BarrierTests.test_barrier_parties.<locals>.<lambda>3  s    gooa.@r
   c                  .    \         P                  ! R4      # )r  r  r	   r
   r   r   r  4  s    goob.Ar
   N)rX   r  assertIsInstancer   r  r  r  s   &r   test_barrier_parties!BarrierTests.test_barrier_parties2  sH     *&@A*&ABgoodff5wGs   A/A1c                  aa"   ^V n         \        P                  ! V P                   4      o. oVV3R lpV P                  V P                   V4      G Rj  xL
  V P	                  \        S4      \        \        V P                   4      4      4       V P                  SP                  ^ 4       V P                  SP                  4       R#  Lt5i)rK   c                     <"   S;_uu_4       GR j  xL
 p SP                  V 4       R R R 4      GR j  xL
  R #  L' L  + GR j  xL 
 '       g   i     R # ; i5ir   r  )r  r  resultss    r   r  /BarrierTests.test_context_manager.<locals>.coro=  s*     ww!q! wwwwwr  N)r  r   r  r   assertListEqualsortedlistrc  rM   r  r    r  r   r  r  r$  s   & @@r   r   !BarrierTests.test_context_manager8  s     //$&&)	" ---VG_d5=.AB**A.(	 	.s   ACC	A5Cc                   a"   \         P                  ! ^4      oV3R lpV! 4       G Rj  xL
 pV P                  V4       V P                  SP                  ^ 4       V P                  SP                  4       R#  LN5i)rI   c                     <"   S;_uu_4       GR j  xL
 p  R R R 4      GR j  xL
  R#  L L  + GR j  xL 
 '       g   i     R # ; i5ir9   r	   )r  r  s    r   r  -BarrierTests.test_filling_one_task.<locals>.fJ  s!     ww! wwwwws?   A*A.A,AAA	7
A	 A		AN)r   r  r   rM   r  r    r  )r   r  retr  s   &  @r   test_filling_one_task"BarrierTests.test_filling_one_taskG  s]     //!$	 Ci**A.(	 s   'A;A9AA;c                  "   \         P                  ! ^4      p\         P                  ! VP                  4       4      p\         P                  ! ^ 4      G Rj  xL
  V P                  VP                  ^ 4       \         P                  ! VP                  4       4      p\         P                  ! ^ 4      G Rj  xL
  V P                  VP                  4       VP                  4       4       V P                  VP                  4       VP                  4       4       V P                  VP                  ^ 4       V P                  VP                  4       R#  L L5irs   )r   r  rL   r   r3   rM   r  r=   rO   r    r  )r   r  rP   rQ   s   &   r   test_filling_one_task_twice(BarrierTests.test_filling_one_task_twiceT  s     //!$  0mmA**A.  0mmAbiik2BGGI.**A.( 	 	s&   AEEAE4E5BEEc                  "   ^V n         \        P                  ! V P                   4      p\        P                  ! VP	                  4       4      p\        P
                  ! ^ 4      G Rj  xL
  V P                  VP                  ^4       V P                  R\        V4      4       \        P                  ! VP	                  4       4      p\        P
                  ! ^ 4      G Rj  xL
  V P                  VP                  ^4       V P                  R\        V4      4       \        P                  ! VP	                  4       4      p\        P
                  ! ^ 4      G Rj  xL
  \        P                  ! W#V.4      G Rj  xL
  V P                  VP                  ^ 4       V P                  VP                  4       R#  ELP L Lb LD5i)rK   Nr  )r  r   r  rL   r   r3   rM   r  r  r   r    r  )r   r  rP   rQ   rR   s   &    r   test_filling_task_by_task&BarrierTests.test_filling_task_by_taskd  s6    //$&&)  0mmA**A.ig/  0mmA**A.ig/  0mmAllBB<(((**A.( 	
 	
 	(sJ   A%G 'F7(A8G  F:!A8G F<G 9F>:>G :G <G >G c                "  aa"   \         P                  ! V P                  4      o. oVV3R  lpV P                  V P                  V4      G Rj  xL
  V P	                  \        S4      V P                  ^,          4       V P	                  SP                  R4      V P                  4       V P	                  SP                  R4      V P                  4       V P	                  SP                  ^ 4       V P                  SP                  4       R#  L5i)c            
      b  <"   S ;_uu_4       GR j  xL
  SP                  R4       S ;_uu_4       GR j  xL
  SP                  R4       R R R 4      GR j  xL
  R R R 4      GR j  xL
  R #  L[ L9 L  + GR j  xL 
 '       g   i     L1; i L(  + GR j  xL 
 '       g   i     R # ; i5i)NTFr  r  r$  s   r   r  8BarrierTests.test_filling_tasks_wait_twice.<locals>.coro~  sS     wwt$"77NN5) #7 ww #777 wwws   B/A.B/ BA0BA4	BA2BB/'B(B/0B2B4B:A=;
BBBB/B,	B
B,	$B,	&	B/NTF)
r   r  r  r   rM   rh   r  r  r    r  r)  s   & @@r   test_filling_tasks_wait_twice*BarrierTests.test_filling_tasks_wait_twicez  s     //$&&)	* ---Wtvvax0t,dff5u-tvv6**A.( 	.s   A	DDC Dc                  aaa"   \         P                  ! V P                  4      o. o. oVVV3R  lpV P                  V P                  V4      G Rj  xL
 w  r#V P	                  \        S4      V P                  4       V P                  \        S4      4       V P	                  \        S4      V P                  4       V P                  \        S4      4       V P                  \        V4      \        \        V P                  4      4      4       V P	                  SP                  ^ 4       V P                  SP                  4       R#  L5i)c            
        <"   S;_uu_4       GR j  xL
  SP                  R4       S;_uu_4       GR j  xL
 p SP                  R4       T uuR R R 4      GR j  xL
  uuR R R 4      GR j  xL
  #  L_ L= L L  + GR j  xL 
 '       g   i     M; iR R R 4      GR j  xL 
  R #   + GR j  xL 
 '       g   i     R # ; i5ir9   r  )r  r  results1results2s    r   r  @BarrierTests.test_filling_tasks_check_return_value.<locals>.coro  sh     ww%"77aOOD) #77 ww #  #777 wwwwws   CA2C B)A4B)A:	B)A6
B)C,A8-C4B)6B)8C:B B
BBB)C!B$"C)C	/B20
C	;C	=	CN)r   r  r  r   rM   rh   r   r  r&  r'  r(  rc  r  r    r  )r   r  r   re  r  r?  r@  s   &   @@@r   %test_filling_tasks_check_return_value2BarrierTests.test_filling_tasks_check_return_value  s     //$&&)	 ((66X/H&X/H&VC[$uTVV}*=>**A.( 7s   AEEC5Ec                  aa"   \         P                  ! V P                  4      o. oVV3R  lpV P                  V P                  V4      G Rj  xL
  V P	                  \        S4      V P                  4       V P	                  SR,          R4       V P                  \        SRV P                  ^,
           4      4       V P	                  SP                  ^ 4       V P                  SP                  4       R#  L5i)c                     <"   S ;_uu_4       GR j  xL
  SP                  R\        S 4      9   4       R R R 4      GR j  xL
  R #  L3 L  + GR j  xL 
 '       g   i     R # ; i5i)Nr  )r;   r   r9  s   r   r  .BarrierTests.test_draining_state.<locals>.coro  s1     wwzT']:; wwwwwsH   A'AA'A
A'A A'A'
A$	A
A$	A$		A'NFra  )r   r  r  r   rM   rh   r   r  r  r    r  r)  s   & @@r   test_draining_state BarrierTests.test_draining_state  s     //$&&)	<
 ---Wtvv.e,GITVVAX./0**A.( 	.s   A	C9C7B*C9c                  aaa"   ^p\         P                  ! V P                  4      o\         P                  ! V P                  V,
          4      o. pVo^ pVVV3R lpV P                  V P                  V4      G Rj  xL
  R#  L5i)rJ   c                    <"   S P                  4       G R j  xL
  S^ 8  d$   S^,          oS P                  4       G R j  xL
  R # SP                  4       G R j  xL
  S P                  4       G R j  xL
  R #  L` L: L" L5ir   r   )r  barrier_nowaitingrewait_ns   r   r  =BarrierTests.test_blocking_tasks_while_draining.<locals>.coro  sm      ,,.   !|Alln$$ (,,...lln$$ ! % /$sD   B A8'B A: B A<B 1A>2B :B <B >B N)r   r  r  r   )r   rewaitr$  counterr  r  rK  rL  s   &    @@@r   "test_blocking_tasks_while_draining/BarrierTests.test_blocking_tasks_while_draining  sd     //$&&)#OODFFVO<	%& ---s   A7B<B=Bc                ^  aa"   ^V n         \        P                  ! V P                   4      o. oVV3R lp\        P                  ! V! 4       4      p\        P                  ! ^ 4      G Rj  xL
  V P                  SP                  ^4       \        P                  ! V! 4       4      p\        P                  ! ^ 4      G Rj  xL
  V P                  SP                  ^4       VP                  4        \        P                  ! ^ 4      G Rj  xL
  V P                  SP                  ^4       V P                  \        P                  4      ;_uu_ 4        VG Rj  xL
  RRR4       V P                  VP                  4       4       \        P                  ! V! 4       4      p\        P                  ! ^ 4      G Rj  xL
  V P                  SP                  ^4       \        P                  ! V! 4       4      p\        P                  ! W4V4      G Rj  xL
  V P                  \        S4      V P                   4       V P                  \        S4      4       V P                  SP                  ^ 4       V P                  SP                   4       R#  EL  EL EL EL<  + '       g   i     ELC; i L L5i)rK   c                  f   <"   S P                  4       G R j  xL
  SP                  R4       R #  L5ir9   r   r9  s   r   r  8BarrierTests.test_filling_tasks_cancel_one.<locals>.coro  s&     ,,.  NN4  !r  N)r  r   r  rL   r3   rM   r  rW   rX   rY   r   rj   r  rh   r  r    r  )r   r  rP   rQ   rR   r  r  r$  s   &     @@r   test_filling_tasks_cancel_one*BarrierTests.test_filling_tasks_cancel_one  s    //$&&)	!   (mmA**A.  (mmA**A.
		mmA**A.w5566HH 7'  (mmA**A.  (nnRR(((Wtvv.G%**A.(3 	 	 	  766
 	 	)s   A%J-)J	*AJ->J?A	J-J	AJ-JJJAJ-6J)7AJ-J+A=J-J-J-JJ&	 
J-+J-c                0  "   \         P                  ! ^4      p\         P                  ! VP                  4       4       \         P                  ! ^ 4      G Rj  xL
  V P                  VP                  ^ 4       V P                  VP                  4       R#  L=5irs   )	r   r  rL   r  r3   rM   r  r    r  r  s   & r   test_reset_barrierBarrierTests.test_reset_barrier  sf     //!$GMMO,mmA**A.( 	   ABB>Bc                  aa"   \         P                  ! V P                  4      o. oVV3R  lpV3R lpV P                  V P                  ^,
          V4      p\         P                  ! ^ 4      G Rj  xL
  \         P
                  ! V! 4       4       \         P                  ! V!  G Rj  xL
  V P                  \        S4      V P                  ^,
          4       V P                  \        S4      4       V P                  SP                  ^ 4       V P                  R\        S4      4       V P                  SP                  4       R#  L L5i)c                     <"    S P                  4       G R j  xL
  R #  L  \        P                   d    SP                  R4        R # i ; i5ir9   r   r   BrokenBarrierErrorr;   r9  s   r   r  ABarrierTests.test_reset_barrier_while_tasks_waiting.<locals>.coro  s:     %lln$$-- %t$%s1   A! ! A! &AA
AAc                  D   <"   S P                  4       G R j  xL
  R #  L5ir   )r  r  s   r   
coro_resetGBarrierTests.test_reset_barrier_while_tasks_waiting.<locals>.coro_reset  s     --/!!s     Nr  )r   r  r  r  r3   rL   r  rM   rh   r   r  r  assertNotInr   r    r  )r   r  ra  r  r  r$  s   &   @@r   &test_reset_barrier_while_tasks_waiting3BarrierTests.test_reset_barrier_while_tasks_waiting  s     //$&&)	%	" 40mmA 	JL)nne$$$Wtvvax0G%**A.d7m4( 	 	%s%   A,E
0E16E
'E(BE
E
c                  aaa"   \         P                  ! V P                  4      o. oV P                  ^,          oVVV3R lpV P                  V P                  V4      G Rj  xL
  V P	                  SR.S,          4       V P	                  SP
                  ^ 4       V P                  R\        S4      4       V P                  SP                  4       R#  Lr5i)rJ   c                     <"    S P                  4       G R j  xL
  SS P                  8X  d   S P                  4       G R j  xL
  R # R #  L1 L
  \        P                   d    SP                  R4        R # i ; i5ir9   )r   _countr  r   r^  r;   )r  rest_of_tasksr?  s   r   r  FBarrierTests.test_reset_barrier_when_tasks_half_draining.<locals>.coro#  sh     	*lln$$ !GNN2!--/)) 3 % * -- &%&sI   A;A A
A $A;AA;
A A;&A84A;7A88A;NTr  
r   r  r  r   rM   r  rc  r   r    r  )r   r  r  ri  r?  s   & @@@r   +test_reset_barrier_when_tasks_half_draining8BarrierTests.test_reset_barrier_when_tasks_half_draining  s     //$&&)	
	* ---D6-#78**A.d7m4( 	.s   AC"C#A3Cc                  aaaaa"   \         P                  ! V P                  4      o. o. oV P                  ^,          o^ oVVVVV3R lpV P                  V P                  V4      G Rj  xL
  V P	                  SR.S,          4       V P	                  S. 4       V P	                  SP
                  ^ 4       V P                  R\        S4      4       V P                  SP                  4       R#  L5i)rJ   c                    <"    S P                  4       G R j  xL
  S^,          oSS8  d3   S P                  4       G R j  xL
  S P                  4       G R j  xL
  R #  S P                  4       G R j  xL
  R #  La L; L% L  \        P                   d    SP	                  R4        R # i ; i  \        P                   d/    SP	                  R4       S P                  4       G R j  xL 
   R # i ; i5ir9   )r   r  r   r^  r;   r  blocking_tasksr  r?  r@  s   r   r  TBarrierTests.test_reset_barrier_when_tasks_half_draining_half_blocking.<locals>.coro=  s     .lln$$ 
>)!--/)) ",,.((.%lln,,# % * ) -"55 . -.# -- %% lln$$%s   C5B/ A:B/ #C5 A<C5A>C5 B 3B 4B 8C5:B/ <C5>C5 B &B,(C5+B,,C5/9C2(C+)C2.C51C22C5NTr  rk  r   r  r  rq  r  r?  r@  s   & @@@@@r   9test_reset_barrier_when_tasks_half_draining_half_blockingFBarrierTests.test_reset_barrier_when_tasks_half_draining_half_blocking6  s     //$&&)	. 	.2 ---D6.#892&**A.d7m4( 	.s   A#C1*C/+BC1c                2  aaa"   \         P                  ! V P                  4      o. o. oVVV3R  lpVV3R lpV P                  V P                  ^,
          V4      p\         P                  ! SP                  4       4       \         P                  ! ^ 4      G Rj  xL
  \         P                  ! V! 4       4       \         P                  ! V!  G Rj  xL
  V P                  SP                  4       V P                  \        S4      V P                  ^,
          4       V P                  \        S4      4       V P                  \        S4      V P                  4       V P                  \        S4      4       V P                  SP                  ^ 4       R#  L L5i)c                  R  <"    S P                  4       G R j  xL
  S P                  4       G R j  xL
  SP                  R4       R #  L/  \        P                   d    SP                  R4        LUi ; i LE  S P                  4       G R j  xL 
  SP                  R4       i ; i5ir9   r]  )r  r?  r@  s   r   coro1TBarrierTests.test_reset_barrier_while_tasks_waiting_and_waiting_again.<locals>.coro1c  s}     &lln$$ lln$$% %-- &%& %glln$$%s_   B'A
 AA
 B'A6B'A
 
&A30A8 2A33A8 6B'8B$BB$$B'c                     <"   S ;_uu_4       GR j  xL
  SP                  R4       R R R 4      GR j  xL
  R #  L' L  + GR j  xL 
 '       g   i     R # ; i5ir9   r  )r  r@  s   r   coro2TBarrierTests.test_reset_barrier_while_tasks_waiting_and_waiting_again.<locals>.coro2l  s(     ww% wwwwwr  N)r   r  r  r  rL   r  r3   r  r    r  rM   rh   r   r  r  )r   rx  r{  r  r  r?  r@  s   &   @@@r   8test_reset_barrier_while_tasks_waiting_and_waiting_againEBarrierTests.test_reset_barrier_while_tasks_waiting_and_waiting_again^  s    //$&&)	&	& q%0 	GMMO,mmA 	EG$nne$$$(Xq1H&X/H&**A. 	
 	%s%   BFF6FFCFFc                z  a aaaaa"   \         P                  ! S P                  4      o. o. o. o^ oVVVVVV 3R lpS P                  S P                  V4      G Rj  xL
  S P	                  SP
                  4       S P                  \        S4      4       S P                  \        S4      S P                  ^,
          4       S P                  \        S4      ^ 4       S P                  \        S4      S P                  4       S P                  \        S4      4       S P                  SP                  ^ 4       R#  L5i)r   c                    <"   SP                  4       G R j  xL
 p S^,          oSSP                  8X  d2   SP                  4       G R j  xL
  SP                  4       G R j  xL
  M* SP                  4       G R j  xL
  SP                  R4       SP                  4       G R j  xL
 pSP                  R4       R #  L Lt L^ LF  \         d   pSP                  R4        R p?LTR p?ii ; i LH5ir9   )r   r  r  r;   	Exception)	r  ekr  r  r?  r@  results3r   s	      r   r  BBarrierTests.test_reset_barrier_while_tasks_draining.<locals>.coro  s      lln$AQJEmmo%% lln$$*!,,.(( OOD) lln$AOOD!- % & % ) ! *OOD))* %s{   C/B<1C/	B>
C/!C "C/(C ;C<C C/$C-%C/>C/ C/C C*C% C/%C**C/N)r   r  r  r   r    r  r   r  rM   rh   r  )r   r  r  r  r?  r@  r  s   f @@@@@r   'test_reset_barrier_while_tasks_draining4BarrierTests.test_reset_barrier_while_tasks_draining  s     //$&&)	" 	"6 ---(H&Xq1X*X/H&**A. 	.s   AD;D9CD;c                0  "   \         P                  ! ^4      p\         P                  ! VP                  4       4       \         P                  ! ^ 4      G Rj  xL
  V P                  VP                  ^ 4       V P                  VP                  4       R#  L=5irs   )	r   r  rL   r  r3   rM   r  r   r  r  s   & r   test_abort_barrierBarrierTests.test_abort_barrier  sd     //!$GMMO,mmA**A.' 	rZ  c                &  aaaaa"   \         P                  ! V P                  4      o. o. oV P                  ^,          o^ oVVVVV3R lpV P                  V P                  V4      G Rj  xL
  V P	                  SP
                  4       V P                  SR.S,          4       V P                  SR.V P                  S,
          ^,
          ,          4       V P                  SP                  ^ 4       V P                  R\        S4      4       R#  L5i)rJ   c                    <"    S P                  4       G R j  xL
  S^,          oSS8  d   S P                  4       G R j  xL
  R #  S P                  4       G R j  xL
  R #  LI L# L
  \        P                   d    SP	                  R4        R # i ; i  \        P                   d    SP	                  R4        R # i ; i5ir9   )r   r  r   r^  r;   rp  s   r   r  TBarrierTests.test_abort_barrier_when_tasks_half_draining_half_blocking.<locals>.coro  s     .lln$$
 
>)!--/)).%lln,, % * -"55 . -. -- &%&s   CB A"B #C A$CA( A&A(  C"B $C&A( (&BCBC&B?;C>B??CNTr  )
r   r  r  r   r   r  rM   r  rc  r   rs  s   & @@@@@r   9test_abort_barrier_when_tasks_half_draining_half_blockingFBarrierTests.test_abort_barrier_when_tasks_half_draining_half_blocking  s     //$&&)	. 	.& ---'D6.#89D6466.+@+B#CD**A.d7m4 	.s   A#D*D+B%Dc                  a aaa"   \         P                  ! S P                  4      o. o. oVVVV 3R  lpS P                  S P                  V4      G Rj  xL
  S P	                  SP
                  4       S P                  \        S4      ^ 4       S P                  \        S4      S P                  ^,
          4       S P	                  \        S4      4       S P                  SP                  ^ 4       R#  L5i)c                  $  <"    S;_uu_4       GR j  xL
 p V SP                   ^,          8X  d   \        hR R R 4      GR j  xL
  S;_uu_4       GR j  xL
  SP                  R4       R R R 4      GR j  xL
  R #  Lh L<  + GR j  xL 
 '       g   i     LS; i LG L(  + GR j  xL 
 '       g   i     R # ; i  \        P                   d    SP                  R4        R # \         d    SP                  4       G R j  xL 
   R # i ; i5ir9   )r  r   r;   r   r^  r  )r  r  r?  r@  r   s    r   r  <BarrierTests.test_abort_barrier_when_exception.<locals>.coro  s     	&"77aDFFAI~** #7 #77OOD) #77 #777 #777-- &% &mmo%%&s   DB= A<B= B B= A>B= BB= B *B= 5B6B= :D<B= >B=  B	B	
B	B		B= B=  B:	&B)'
B:	2B:	4B= 8D:B= =&D#D&D/DDD	DDDN)
r   r  r  r   r   r  rM   rh   r  r  )r   r  r  r?  r@  s   f @@@r   !test_abort_barrier_when_exception.BarrierTests.test_abort_barrier_when_exception  s     //$&&)
	& 
	& ---'X*Xq1H&**A. 	.s   AC4C2BC4c                  a aaaaa"   \         P                  ! S P                  4      o\         P                  ! S P                  4      o. o. o. oVVVVVV 3R  lpS P                  S P                  V4      G Rj  xL
  S P	                  SP
                  4       S P                  \        S4      ^ 4       S P                  \        S4      S P                  ^,
          4       S P                  \        S4      4       S P                  \        S4      S P                  4       S P                  \        S4      4       S P                  SP                  ^ 4       R#  L5i)c                    <"    SP                  4       G R j  xL
 p V SP                  ^,          8X  d   \        hSP                  4       G R j  xL
  SP                  R4       SP                  4       G R j  xL
 p V SP                  ^,          8X  d   SP                  4       G R j  xL
  SP                  4       G R j  xL
  SP                  4       G R j  xL
  SP                  R4       R #  L L  \        P
                   d    SP                  R4        L\         d    SP                  4       G R j  xL 
   Li ; i L L L Lr5ir9   )r   r  r   r;   r   r^  r  r  )r  barrier1barrier2r?  r@  r  r   s    r   r  KBarrierTests.test_abort_barrier_when_exception_then_resetting.<locals>.coro  s     	'"--/)	>&&mmo%%% mmo%ATVVQYnn&&&--/!!--/!!OOD!% * &-- &% 'nn&&&' &&!!s   EC3 C/5C3 C1C3 $E7E8/E'E(E?E EE
E/C3 1C3 3&EEE$E8D;9E>E EEEE
EN)r   r  r  r   r    r  rM   rh   r   r  r  )r   r  r  r  r?  r@  r  s   f @@@@@r   0test_abort_barrier_when_exception_then_resetting=BarrierTests.test_abort_barrier_when_exception_then_resetting  s     ??466*??466*	" 	", ---)X*Xq1H&X/H&++Q/ 	.s   A1E9E:CE)r  ) r,   r   r   r   r  r  r   r  r   r   r   r/  r2  r5  r;  rB  rG  rP  rU  rX  rd  rl  rt  r}  r  r  r  r  r  r   r   __classcell__)r  r   s   @@r   r  r    s     
	01?fH))) ),)()0)$.:#)J))6)0&)P#/L+/Z( 5D/4'0 '0r
   r  __main__)unittestr   rer   r{  STR_RGX_REPRcompiler   r   IsolatedAsyncioTestCaser   r   r   rs  r  r,   mainr	   r
   r   <module>r     s      	    ::l#0@(00 @(Fi$11 i$XDX55 DLT/X55 T/l
x0833 x0v zMMO r
   