
    \dR                         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 Zd ZdS )
DummyClockr   c                     || _         d S Ntime)selfwhens     5lib/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   N)__name__
__module____qualname__r   r   r    r   r   r
   r
   
   s7        D      r   r
   c                       e Zd ZdZdZdS )
SomeBucketd      N)r   r   r   maxburstrater   r   r   r   r      s        HDDDr   r   c                       e Zd Zd Zd ZdS )TestBucketBasec                 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   N)r   r   r   r&   r(   r   r   r   r"   r"      s2          
& & & & &r   r"   c                        e Zd Zd Zd Zd ZdS )BucketTestsc                 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     LLeeDkkc"""""r   c                     t                      }|                    d          }| j                            d           |                    d          }|                     d|           dS )z2
        Testing the bucket's drain rate.
        r,   
      N)r   r-   r%   r   r.   r/   s      r   testBucketDrainzBucketTests.testBucketDrain,   s[     LLeeDkk
reeDkk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.
        r5   	   r4   N)r   r-   r%   r   dripassertFalse
assertTrue)r   r0   emptys      r   test_bucketEmptyzBucketTests.test_bucketEmpty6   s     LL	b			
q
rr   N)r   r   r   r2   r6   r=   r   r   r   r*   r*   #   sA        # # #" " "    r   r*   c                        e Zd Zd Zd Zd ZdS )BucketNestingTestsc                     t                               |            t                      | _        t          | j                  | _        t          | j                  | _        d S r   )r"   r&   r   parentchild1child2r   s    r   r&   zBucketNestingTests.setUpE   sG    T""" ll -- --r   c                     | j                             d           | j                            d          }|                     d|           d S )NZ   r4   )rB   r-   rC   r.   r   r1   s     r   testBucketParentSizez'BucketNestingTests.testBucketParentSizeK   sE    koob!!S!!!!!r   c                     d| j         _        | j                            d           | j                            d           | j                            d          }|                     d|           d S )Nr   r   r4   )rA   r    rB   r-   r%   r   r.   rF   s     r   testBucketParentRatez'BucketNestingTests.testBucketParentRateQ   se    
rkooc""
 	S!!!!!r   N)r   r   r   r&   rG   rI   r   r   r   r?   r?   D   sA        . . ." " "" " " " "r   r?   c                        e Zd Zd Zd Zd ZdS )ConsumerShaperTestsc                     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"""'// ll($+FFr   c                 f   d}| j                             d           | j                            d           | j                            |           | j                                         |                     t          | j	        
                                          || j         j        z             d S )Nr4   r   dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rN   r-   rP   writer%   r   resumeProducingr.   lenrM   getvaluer    )r   delta_ts     r   testRatezConsumerShaperTests.testRatei   s     )$$$
w##%%%T_557788'DKDT:TUUUUUr   c                     |                      | j        j        d           | j                                         |                      | j        j        d           d S )Nr   r   )r.   rN   	_refcountrP   stopProducingr   s    r   testBucketRefsz"ConsumerShaperTests.testBucketRefss   sR    .222!!###.22222r   N)r   r   r   r&   rX   r\   r   r   r   rK   rK   b   sG        G G GV V V3 3 3 3 3r   rK   N)__version__twisted.protocolsr   twisted.trialr   test_pcpr   r
   Bucketr   TestCaser"   r*   r?   rK   r   r   r   <module>rc      sU   !B' ! ! ! ! ! ! " " " " " " # # # # # #              
& & & & &X& & & &    .   B" " " " " " " "<3 3 3 3 3. 3 3 3 3 3r   