
    #)f                         d dl Z d dlmZmZmZ d dlZd dlZddlmZ ddl	m
Z
 ddl ddlmZ  ed      Zd	eg ee   f   d
edefdZdZe
dd       Ze
dd       Ze
dd       ZddZy)    N)	AwaitableCallableTypeVar   )_core)slow)*)assert_checkpointsTfexpected_durreturnc                    K   t        j                         }t        j                  |        d {   }t        j                         |z
  }t	        ||z         d||z  cxk  rdk  sJ  J |j                         S 7 Lw)NgG?g      ?)timeperf_counteroutcomeacaptureprintunwrap)r   r   startresultdurs        V/var/www/html/flask-app/venv/lib/python3.12/site-packages/trio/_tests/test_timeouts.pycheck_takes_aboutr      su     E##A&&F




%C	#
( #,33333==?1 's   -A>A<AA>g      ?c                    K   dd} t        | t               d {    dd}t        |t               d {    t               5  t        d       d {    d d d        t	        t        j                               5  t        j                  t
        j                        5  t        d       d {    d d d        d d d        y 7 7 7 v# 1 sw Y   uxY w7 '# 1 sw Y   &xY w# 1 sw Y   y xY ww)Nc                  h   K   t        t        j                         t        z          d {    y 7 wN)sleep_untilr   current_timeTARGET     r   sleep_1ztest_sleep.<locals>.sleep_13   s"     %,,.7888s   (202c                  >   K   t        t               d {    y 7 wr   )sleepr    r!   r"   r   sleep_2ztest_sleep.<locals>.sleep_28   s     Fms   r   r   N)
r   r    r
   r%   
move_on_atr   r   pytestraises	Cancelled)r#   r&   s     r   
test_sleepr,   1   s     9 GV
,,, GV
,,,		 Ah 
E&&(	) ]]5??+ 	(NN	  -
 - 	 
 	 	 s   C3CC3C	C3CCC%C3>$C'"C1C2C6C'>
C3	C3CCC3CC$	 C''C0,C3c                  H   K   dd} t        | t               d {    y 7 w)Nc                  ~   K   t        t              5  t        d       d {    d d d        y 7 # 1 sw Y   y xY wwNd   )move_on_afterr    r%   r!   r"   r   sleep_3z#test_move_on_after.<locals>.sleep_3G   s8     6" 	*	 		 	    =1/1	=1:=r'   )r   r    )r2   s    r   test_move_on_afterr4   E   s      GV
,,,s   " "c                  :  K   dd} t        j                  t              5  t        | t               d {    d d d        t        t        j                         dz         5  t        d       d {    d d d        dd}t        j                  t              5  t        |t               d {    d d d        t        d      5  t        d       d {    d d d        y 7 # 1 sw Y   xY w7 # 1 sw Y   xY w7 P# 1 sw Y   OxY w7 7# 1 sw Y   y xY ww)Nc                     K   t        t        j                         t        z         5  t	        d       d {    d d d        y 7 # 1 sw Y   y xY wwr/   )fail_atr   r   r    r%   r!   r"   r   sleep_4ztest_fail.<locals>.sleep_4P   sF     U'')F23 	*	 		 	s+   %AAAA	AAAAr0   r   c                  ~   K   t        t              5  t        d       d {    d d d        y 7 # 1 sw Y   y xY wwr/   )
fail_afterr    r%   r!   r"   r   sleep_5ztest_fail.<locals>.sleep_5Z   s8      	*	 		 	r3   r'   )
r)   r*   TooSlowErrorr   r    r7   r   r   r%   r:   )r8   r;   s     r   	test_failr=   N   s      
|	$ 10001 
##%+	, Ah 
|	$ 10001 
C Ah  	11 1 	  	11 1 	 s   DC%C#C%(D!C30C11C35%DD.C?/D3DDDD	D#C%%C.*D1C33C<8D?DD
DDDDc                    K   t        d      } t        dft        | ft        | ffD ]9  \  }}t        j                  t
        d      5   ||       d {    d d d        ; t        dft        | ft        | ft        dft        | ft        | ffD ];  \  }}t        j                  t
        d      5   ||      5  	 d d d        d d d        = y 7 y# 1 sw Y   xY w# 1 sw Y   "xY w# 1 sw Y   bxY ww)Nnanz?^(duration|deadline|timeout) must (not )*be (non-negative|NaN)$)match)
floatr%   r   r)   r*   
ValueErrorr:   r7   r1   r(   )r?   funvalcms       r   test_timeouts_raise_value_errorrG   e   s     ,C 
		c 	S
 ]]S
 	 c(NN		 		 
R	S	#			S C ]]S
 	 C 		 	 		 	$ 		 	sa   AC2CCCAC2.	C&7C9C&C2CC	C2C#C&&C/	+C2r'   )r   typingr   r   r   r   r)    r   _core._tests.tutilr   	_timeoutstestingr
   r   rB   r   r    r,   r4   r=   rG   r!   r"   r   <module>rM      s     / /    %  (CLxIaL(89  ST > 
  & - -  ,r"   