+
    üÐj¾  ã                   óÞ   € R ^R t ^ RIHt ^ RIHt ^RIHt  ! R R4      t ! R R]P                  4      t	 ! R R	]P                  4      t ! R
 R]4      t ! R R]4      t ! R R]4      tR# )z$Revision: 1.3 $)Úhtb)Úunittest)ÚDummyConsumerc                   óH   a € ] tR t^
t o ^ tV 3R lR ltV 3R lR ltRtV tR# )Ú
DummyClockc                ó$   <€ V ^8„  d   QhRS[ RR/# )é   ÚwhenÚreturnN©Úint)ÚformatÚ__classdict__s   "€Ú7/usr/lib/python3/dist-packages/twisted/test/test_htb.pyÚ__annotate__ÚDummyClock.__annotate__   s   ø€ ÷ ñ ™ð  ñ ó    c                ó   € Wn         R # ©N©Útime)Úselfr	   s   &&r   ÚsetÚDummyClock.set   s   € ØŽ	r   c                ó    <€ V ^8„  d   QhRS[ /# )r   r
   r   )r   r   s   "€r   r   r      s   ø€ ÷ ñ ™#ñ r   c                ó   € V P                   # r   r   ©r   s   &r   Ú__call__ÚDummyClock.__call__   s   € Ø�y‰yÐr   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r   
   s   ø‡ € Ø€D÷ð ÷ö r   r   c                   ó   € ] tR t^t^dt^tRtR# )Ú
SomeBucket© N)r   r    r!   r"   ÚmaxburstÚrater#   r(   r   r   r'   r'      s   † Ø€HØ„Dr   r'   c                   óD   a € ] tR t^t o V 3R lR ltV 3R lR ltRtV tR# )ÚTestBucketBasec                ó   <€ V ^8„  d   QhRR/# ©r   r
   Nr(   )r   r   s   "€r   r   ÚTestBucketBase.__annotate__   s   ø€ ÷ ñ �tñ r   c                óx   € \         P                  V n        \        4       V n        V P                  \         n        R # r   )r   r   Ú_realTimeFuncr   Úclockr   s   &r   ÚsetUpÚTestBucketBase.setUp   s"   € Ü ŸX™XˆÔÜ“\ˆŒ
Ø—:‘:ŒŽr   c                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   r/      s   ø€ ÷ &ñ &˜$ñ &r   c                ó0   € V P                   \        n        R # r   )r1   r   r   r   s   &r   ÚtearDownÚTestBucketBase.tearDown   s   € Ø×%Ñ%ŒŽr   )r1   r2   N)r   r    r!   r"   r3   r7   r#   r$   r%   s   @r   r,   r,      s   ø‡ € ÷ð ÷
&ö &r   r,   c                   óV   a € ] tR t^#t o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )	ÚBucketTestsc                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   ÚBucketTests.__annotate__$   s   ø€ ÷ #ñ # ñ #r   c                ó`   € \        4       pVP                  R4      pV P                  ^dV4       R# )z!
Testing the size of the bucket.
éè  N)r'   ÚaddÚassertEqual©r   ÚbÚfits   &  r   ÚtestBucketSizeÚBucketTests.testBucketSize$   s(   € ô ‹LˆØ�e‰e�D‹kˆØ×Ñ˜˜cÖ"r   c                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   r<   ,   s   ø€ ÷ "ñ " ñ "r   c                ó¸   € \        4       pVP                  R4      pV P                  P                  ^
4       VP                  R4      pV P	                  ^V4       R# )z"
Testing the bucket's drain rate.
r>   N)r'   r?   r2   r   r@   rA   s   &  r   ÚtestBucketDrainÚBucketTests.testBucketDrain,   sE   € ô ‹LˆØ�e‰e�D‹kˆØ�
‰
�‰�rÔØ�e‰e�D‹kˆØ×Ñ˜˜SÖ!r   c                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   r<   6   s   ø€ ÷ ñ  $ñ r   c                ó,  € \        4       pVP                  ^4       V P                  P                  ^	4       VP	                  4       pV P                  V4       V P                  P                  ^
4       VP	                  4       pV P                  V4       R# )zL
L{htb.Bucket.drip} returns C{True} if the bucket is empty after that drip.
N)r'   r?   r2   r   ÚdripÚassertFalseÚ
assertTrue)r   rB   Úemptys   &  r   Útest_bucketEmptyÚBucketTests.test_bucketEmpty6   sf   € ô ‹LˆØ	�‰ˆbŒ	Ø�
‰
�‰�qÔØ—‘“ˆØ×Ñ˜ÔØ�
‰
�‰�rÔØ—‘“ˆØ�‰˜Ör   r(   N)	r   r    r!   r"   rD   rH   rP   r#   r$   r%   s   @r   r:   r:   #   s#   ø‡ € ÷#ð #÷"ð "÷ö r   r:   c                   óV   a € ] tR t^Dt o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )	ÚBucketNestingTestsc                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   ÚBucketNestingTests.__annotate__E   s   ø€ ÷ .ñ .�tñ .r   c                ó¶   € \         P                  V 4       \        4       V n        \        V P                  4      V n        \        V P                  4      V n        R # r   )r,   r3   r'   ÚparentÚchild1Úchild2r   s   &r   r3   ÚBucketNestingTests.setUpE   s9   € Ü×Ñ˜TÔ"Ü “lˆŒÜ  §¡Ó-ˆŒÜ  §¡Ó-ˆŽr   c                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   rU   K   s   ø€ ÷ "ñ " dñ "r   c                ó–   € V P                   P                  ^Z4       V P                  P                  ^Z4      pV P                  ^
V4       R# )éZ   N)rX   r?   rY   r@   ©r   rC   s   & r   ÚtestBucketParentSizeÚ'BucketNestingTests.testBucketParentSizeK   s4   € à�‰�‰˜ÔØ�k‰k�o‰o˜bÓ!ˆØ×Ñ˜˜SÖ!r   c                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   rU   Q   s   ø€ ÷ "ñ " dñ "r   c                óî   € ^V P                   n        V P                  P                  ^d4       V P                  P                  ^
4       V P                  P                  ^d4      pV P                  ^
V4       R# ©é   N)rW   r*   rX   r?   r2   r   r@   r^   s   & r   ÚtestBucketParentRateÚ'BucketNestingTests.testBucketParentRateQ   sR   € àˆ�‰Ôà�‰�‰˜ÔØ�
‰
�‰�rÔØ�k‰k�o‰o˜cÓ"ˆð
 	×Ñ˜˜SÖ!r   )rX   rY   rW   N)	r   r    r!   r"   r3   r_   re   r#   r$   r%   s   @r   rS   rS   D   s#   ø‡ € ÷.ð .÷"ð "÷"ö "r   rS   c                   óV   a € ] tR t^bt o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )	ÚConsumerShaperTestsc                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   Ú ConsumerShaperTests.__annotate__c   s   ø€ ÷ Gñ G�tñ Gr   c                óÌ   € \         P                  V 4       \        4       V n        \	        4       V n        \        P                  ! V P                  V P
                  4      V n        R # r   )	r,   r3   r   Ú
underlyingr'   Úbucketr   ÚShapedConsumerÚshapedr   s   &r   r3   ÚConsumerShaperTests.setUpc   s>   € Ü×Ñ˜TÔ"Ü'›/ˆŒÜ “lˆŒÜ×(Ò(¨¯©¸$¿+¹+ÓFˆŽr   c                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   rj   i   s   ø€ ÷ Vñ V˜$ñ Vr   c                óz  € ^
pV P                   P                  ^d4       V P                  P                  R4       V P                  P                  V4       V P                  P                  4        V P                  \        V P                  P                  4       4      WP                   P                  ,          4       R# )é
   NÚdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rm   r?   ro   Úwriter2   r   ÚresumeProducingr@   Úlenrl   Úgetvaluer*   )r   Údelta_ts   & r   ÚtestRateÚConsumerShaperTests.testRatei   sz   € ð ˆØ�‰�‰˜ÔØ�‰×Ñ˜)Ô$Ø�
‰
�‰�wÔØ�‰×#Ñ#Ô%Ø×Ñœ˜TŸ_™_×5Ñ5Ó7Ó8¸'ÇKÁK×DTÑDTÕ:TÖUr   c                ó   <€ V ^8„  d   QhRR/# r.   r(   )r   r   s   "€r   r   rj   s   s   ø€ ÷ 3ñ 3 ñ 3r   c                óÒ   € V P                  V P                  P                  ^4       V P                  P	                  4        V P                  V P                  P                  ^ 4       R# rc   )r@   rm   Ú	_refcountro   ÚstopProducingr   s   &r   ÚtestBucketRefsÚ"ConsumerShaperTests.testBucketRefss   sF   € Ø×Ñ˜Ÿ™×.Ñ.°Ô2Ø�‰×!Ñ!Ô#Ø×Ñ˜Ÿ™×.Ñ.°Ö2r   )rm   ro   rl   N)	r   r    r!   r"   r3   rz   r€   r#   r$   r%   s   @r   rh   rh   b   s'   ø‡ € ÷Gð G÷Vð V÷3ö 3r   rh   Néþÿÿÿ)Ú__version__Útwisted.protocolsr   Útwisted.trialr   Útest_pcpr   r   ÚBucketr'   ÚTestCaser,   r:   rS   rh   r(   r   r   Ú<module>r‰      sm   ðð !  BÐ'€å !Ý "Ý #÷ñ ô�—‘ô ô
&�X×&Ñ&ô &ô�.ô ôB"˜ô "ô<3˜.ö 3r   