§
    Ètºf¾  ã                   óø   — d dd…         Z ddlmZ ddlmZ ddlmZ  G d„ d	¦  «        Z G d
„ dej        ¦  «        Z	 G d„ dej
        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )z$Revision: 1.3 $é   éþÿÿÿé    )Úhtb)Úunittesté   )ÚDummyConsumerc                   ó.   — e Zd ZdZdeddfd„Zdefd„ZdS )Ú
DummyClockr   ÚwhenÚreturnNc                 ó   — || _         d S ©N©Útime)Úselfr   s     úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/test/test_htb.pyÚsetzDummyClock.set   s   € ØˆŒ	ˆ	ˆ	ó    c                 ó   — | j         S r   r   ©r   s    r   Ú__call__zDummyClock.__call__   s
   € ØŒyÐr   )Ú__name__Ú
__module__Ú__qualname__r   Úintr   r   © r   r   r
   r
   
   sV   € € € € € Ø€Dð˜ð  ð ð ð ð ð˜#ð ð ð ð ð ð r   r
   c                   ó   — e Zd ZdZdZdS )Ú
SomeBucketéd   é   N)r   r   r   ÚmaxburstÚrater   r   r   r   r      s   € € € € € Ø€HØ€D€D€Dr   r   c                   ó   — e Zd Zdd„Zdd„ZdS )ÚTestBucketBaser   Nc                 óp   — t           j        | _        t          ¦   «         | _        | j        t           _        d S r   )r   r   Ú_realTimeFuncr
   Úclockr   s    r   ÚsetUpzTestBucketBase.setUp   s$   € Ý œXˆÔÝ‘\”\ˆŒ
Ø”:�Œˆˆr   c                 ó(   — | j         t          _        d S r   )r&   r   r   r   s    r   ÚtearDownzTestBucketBase.tearDown   s   € ØÔ%�Œˆˆr   ©r   N)r   r   r   r(   r*   r   r   r   r$   r$      s<   € € € € € ðð ð ð ð
&ð &ð &ð &ð &ð &r   r$   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚBucketTestsr   Nc                 óx   — t          ¦   «         }|                     d¦  «        }|                      d|¦  «         dS )z1
        Testing the size of the bucket.
        éè  r   N)r   ÚaddÚassertEqual©r   ÚbÚfits      r   ÚtestBucketSizezBucketTests.testBucketSize$   s8   € õ ‰LŒLˆØ�eŠe�D‰kŒkˆØ×Ò˜˜cÑ"Ô"Ð"Ð"Ð"r   c                 óÖ   — t          ¦   «         }|                     d¦  «        }| j                             d¦  «         |                     d¦  «        }|                      d|¦  «         dS )z2
        Testing the bucket's drain rate.
        r/   é
   é   N)r   r0   r'   r   r1   r2   s      r   ÚtestBucketDrainzBucketTests.testBucketDrain,   s[   € õ ‰LŒLˆØ�eŠe�D‰kŒkˆØŒ
�Š�rÑÔÐØ�eŠe�D‰kŒkˆØ×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r   c                 óX  — t          ¦   «         }|                     d¦  «         | j                             d¦  «         |                     ¦   «         }|                      |¦  «         | j                             d¦  «         |                     ¦   «         }|                      |¦  «         dS )z\
        L{htb.Bucket.drip} returns C{True} if the bucket is empty after that drip.
        r8   é	   r7   N)r   r0   r'   r   ÚdripÚassertFalseÚ
assertTrue)r   r3   Úemptys      r   Útest_bucketEmptyzBucketTests.test_bucketEmpty6   sŠ   € õ ‰LŒLˆØ	�Šˆb‰	Œ	ˆ	ØŒ
�Š�qÑÔÐØ—’‘”ˆØ×Ò˜ÑÔÐØŒ
�Š�rÑÔÐØ—’‘”ˆØ�Š˜ÑÔÐÐÐr   r+   )r   r   r   r5   r9   r@   r   r   r   r-   r-   #   sP   € € € € € ð#ð #ð #ð #ð"ð "ð "ð "ðð ð ð ð ð r   r-   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚBucketNestingTestsr   Nc                 óÄ   — t                                | ¦  «         t          ¦   «         | _        t          | j        ¦  «        | _        t          | j        ¦  «        | _        d S r   )r$   r(   r   ÚparentÚchild1Úchild2r   s    r   r(   zBucketNestingTests.setUpE   sG   € Ý×Ò˜TÑ"Ô"Ð"Ý ‘l”lˆŒÝ  ¤Ñ-Ô-ˆŒÝ  ¤Ñ-Ô-ˆŒˆˆr   c                 óš   — | j                              d¦  «         | j                             d¦  «        }|                      d|¦  «         d S )NéZ   r7   )rE   r0   rF   r1   ©r   r4   s     r   ÚtestBucketParentSizez'BucketNestingTests.testBucketParentSizeK   sE   € àŒ�Š˜ÑÔÐØŒk�oŠo˜bÑ!Ô!ˆØ×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r   c                 óæ   — d| j         _        | j                             d¦  «         | j                             d¦  «         | j                             d¦  «        }|                      d|¦  «         d S )Nr   r   r7   )rD   r"   rE   r0   r'   r   r1   rI   s     r   ÚtestBucketParentRatez'BucketNestingTests.testBucketParentRateQ   se   € àˆŒÔàŒ�Š˜ÑÔÐØŒ
�Š�rÑÔÐØŒk�oŠo˜cÑ"Ô"ˆð
 	×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r   r+   )r   r   r   r(   rJ   rL   r   r   r   rB   rB   D   sP   € € € € € ð.ð .ð .ð .ð"ð "ð "ð "ð"ð "ð "ð "ð "ð "r   rB   c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚConsumerShaperTestsr   Nc                 óÎ   — t                                | ¦  «         t          ¦   «         | _        t	          ¦   «         | _        t          j        | j        | j        ¦  «        | _        d S r   )	r$   r(   r   Ú
underlyingr   Úbucketr   ÚShapedConsumerÚshapedr   s    r   r(   zConsumerShaperTests.setUpc   sH   € Ý×Ò˜TÑ"Ô"Ð"Ý'™/œ/ˆŒÝ ‘l”lˆŒÝÔ(¨¬¸$¼+ÑFÔFˆŒˆˆr   c                 óf  — d}| j                              d¦  «         | j                             d¦  «         | j                             |¦  «         | j                             ¦   «          |                      t          | j	         
                    ¦   «         ¦  «        || j         j        z  ¦  «         d S )Nr7   r   Údxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rQ   r0   rS   Úwriter'   r   ÚresumeProducingr1   ÚlenrP   Úgetvaluer"   )r   Údelta_ts     r   ÚtestRatezConsumerShaperTests.testRatei   s—   € ð ˆØŒ�Š˜ÑÔÐØŒ×Ò˜)Ñ$Ô$Ð$ØŒ
�Š�wÑÔÐØŒ×#Ò#Ñ%Ô%Ð%Ø×Ò�˜Tœ_×5Ò5Ñ7Ô7Ñ8Ô8¸'ÀDÄKÔDTÑ:TÑUÔUÐUÐUÐUr   c                 ó¸   — |                       | j        j        d¦  «         | j                             ¦   «          |                       | j        j        d¦  «         d S )Nr   r   )r1   rQ   Ú	_refcountrS   ÚstopProducingr   s    r   ÚtestBucketRefsz"ConsumerShaperTests.testBucketRefss   sR   € Ø×Ò˜œÔ.°Ñ2Ô2Ð2ØŒ×!Ò!Ñ#Ô#Ð#Ø×Ò˜œÔ.°Ñ2Ô2Ð2Ð2Ð2r   r+   )r   r   r   r(   r[   r_   r   r   r   rN   rN   b   sX   € € € € € ðGð Gð Gð GðVð Vð Vð Vð3ð 3ð 3ð 3ð 3ð 3r   rN   N)Ú__version__Útwisted.protocolsr   Útwisted.trialr   Útest_pcpr   r
   ÚBucketr   ÚTestCaser$   r-   rB   rN   r   r   r   ú<module>rf      sU  ðð !  B Ô'€à !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ñ ô ð ðð ð ð ð �”ñ ô ð ð
&ð &ð &ð &ð &�XÔ&ñ &ô &ð &ðð ð ð ð �.ñ ô ð ðB"ð "ð "ð "ð "˜ñ "ô "ð "ð<3ð 3ð 3ð 3ð 3˜.ñ 3ô 3ð 3ð 3ð 3r   