Ë
    ÿ\jó  ã                   óF   — d dl mZmZmZ d dlZd dlZd„ Zd„ Zd„ Zd„ Z	d„ Z
y)é    )ÚRetryDelayStrategyÚDefaultBackoffStrategyÚDefaultJitterStrategyNc                  óî   — d} t        | dd d «      }t        j                  «       dz
  }|j                  |«      }|j                  |dz   «      }|j                  |dz   «      }|| k(  sJ ‚|| k(  sJ ‚|| k(  sJ ‚y )Né
   r   é<   é   é   )r   ÚtimeÚnext_retry_delay)Úd0ÚrÚt0Úd1Úd2Úd3s         úG/root/env/lib/python3.12/site-packages/testing/impl/test_retry_delay.pyÚtest_fixed_retry_delayr      s€   € Ø	€BÜ˜2˜q $¨Ó-€AÜ	‰‹rÑ	€BØ	
×	Ñ	˜BÓ	€BØ	
×	Ñ	˜B ™FÓ	#€BØ	
×	Ñ	˜B ™FÓ	#€BØŠ8€Oˆ8ØŠ8€Oˆ8ØŠ8€O‰8ó    c                  óF  — d} d}t        | dt        |«      d «      }t        j                  «       dz
  }|j                  |«      }|j                  |dz   «      }|j                  |dz   «      }|j                  |dz   «      }|| k(  sJ ‚|| dz  k(  sJ ‚|| dz  k(  sJ ‚||k(  sJ ‚y )Nr   r   r   r	   r
   é   é   )r   r   r   r   )r   Úmaxr   r   r   r   r   Úd4s           r   Útest_backoff_without_jitterr      sµ   € Ø	€BØ
€CÜ˜2˜qÔ"8¸Ó"=¸tÓD€AÜ	‰‹rÑ	€BØ	
×	Ñ	˜BÓ	€BØ	
×	Ñ	˜B ™FÓ	#€BØ	
×	Ñ	˜B ™FÓ	#€BØ	
×	Ñ	˜B ™FÓ	#€BØŠ8€Oˆ8Øa‘Š<Ðˆ<Øa‘Š<Ðˆ<ØŠ9Ð‰9r   c            	      óŠ  — d} d}t        | dd t        d|«      «      }t        j                  «       dz
  }|j                  |«      }|j                  |dz   «      }|j                  |dz   «      }t	        j
                  |dz  «      dk(  sJ ‚t	        j
                  |dz  «      dk(  sJ ‚t	        j
                  |dz  «      d	k(  sJ ‚y )
Nr	   éè  r   ç      à?r   r
   éc  é™  é¶  )r   r   r   r   ÚmathÚtrunc)r   Úseedr   r   r   r   r   s          r   Útest_jitter_without_backoffr%      s½   € Ø	
€BØ€DÜ˜2˜q $Ô(=¸cÀ4Ó(HÓI€AÜ	‰‹rÑ	€BØ	
×	Ñ	˜BÓ	€BØ	
×	Ñ	˜B ™FÓ	#€BØ	
×	Ñ	˜B ™FÓ	#€BÜ:‰:b˜4‘iÓ  CÒ'Ð'Ð'Ü:‰:b˜4‘iÓ  CÒ'Ð'Ð'Ü:‰:b˜4‘iÓ  CÒ'Ð'Ñ'r   c            	      ó¬  — d} d}d}t        | dt        |«      t        d|«      «      }t        j                  «       dz
  }|j	                  |«      }|j	                  |dz   «      }|j	                  |dz   «      }t        j                  |dz  «      dk(  sJ ‚t        j                  |dz  dz  «      dk(  sJ ‚t        j                  |d	z  dz  «      d
k(  sJ ‚y )Nr	   r   r   r   r   r
   r   r    r   r!   )r   r   r   r   r   r"   r#   )r   r   r$   r   r   r   r   r   s           r   Útest_jitter_with_backoffr'   +   sÒ   € Ø	
€BØ
€CØ€DÜ˜2˜qÔ"8¸Ó"=Ô?TÐUXÐZ^Ó?_Ó`€AÜ	‰‹rÑ	€BØ	
×	Ñ	˜BÓ	€BØ	
×	Ñ	˜B ™FÓ	#€BØ	
×	Ñ	˜B ™FÓ	#€BÜ:‰:b˜4‘iÓ  CÒ'Ð'Ð'Ü:‰:b˜1‘f˜t‘mÓ$¨Ò+Ð+Ð+Ü:‰:b˜1‘f˜t‘mÓ$¨Ò+Ð+Ñ+r   c                  óš  — d} d}d}t        | |t        |«      d «      }t        j                  «       dz
  }|j                  d«       |dz   }|j	                  |«      }|| k(  sJ ‚|dz   }|j                  |«       |dz   }|j	                  |«      }	|	| dz  k(  sJ ‚||	z   }
|j                  |
«       |
|z   }|j	                  |«      }|| k(  sJ ‚y )Nr   r   é-   é2   r	   r
   )r   r   r   Úset_good_sincer   )r   r   Úreset_intervalr   r   Út1r   Út2Út3r   Út4Út5r   s                r   Útest_backoff_reset_intervalr2   8   så   € Ø	€BØ
€CØ€NÜ˜2˜~Ô/EÀcÓ/JÈDÓQ€Aä	‰‹rÑ	€BØ×ÑRÔà	ˆa‰€BØ	
×	Ñ	˜BÓ	€BØŠ8€Oˆ8à	ˆa‰€BØ×ÑRÔà	ˆb‰€BØ	
×	Ñ	˜BÓ	€BØa‘Š<Ðˆ<à	ˆb‰€BØ×ÑRÔà	ˆnÑ	€BØ	
×	Ñ	˜BÓ	€BØŠ8€O‰8r   )Úldclient.impl.retry_delayr   r   r   r"   r   r   r   r%   r'   r2   © r   r   ú<module>r5      s*   ðß gÑ gã Û ò	òò
(ò,ór   