o
    ÕÜgØ  ã                   @   sL   d dl m Z  ddlmZ G dd„ de ƒZdd„ Zdd	„ ZG d
d„ deƒZdS )é    )Úgreenleté   )ÚTestCasec                   @   s4   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ ZeZdS )
ÚgenletNc                 O   s   || _ || _d S ©N)ÚargsÚkwds)Úselfr   r   © r
   úW/var/www/html/api-tag/env/lib/python3.10/site-packages/greenlet/tests/test_generator.pyÚ__init__   s   
zgenlet.__init__c                 C   s   | j \}|| ji | j¤Ž d S r   )Úfnr   r   )r	   r   r
   r
   r   Úrun   s   z
genlet.runc                 C   s   | S r   r
   )r	   r
   r
   r   Ú__iter__   s   zgenlet.__iter__c                 C   s   t  ¡ | _|  ¡ }| r|S t‚r   )r   Ú
getcurrentÚparentÚswitchÚStopIteration)r	   Úresultr
   r
   r   Ú__next__   s
   
zgenlet.__next__)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   Únextr
   r
   r
   r   r      s    r   c                 C   sB   t  ¡ }t|tƒs|d u rtdƒ‚|j}t|tƒr	|j | ¡ d S )Nzyield outside a genlet)r   r   Ú
isinstancer   ÚRuntimeErrorr   r   )ÚvalueÚgr
   r
   r   ÚYield   s   

ýr   c                    s   G ‡ fdd„dt ƒ}|S )Nc                       s   e Zd Z” fZdS )zgenerator.<locals>.GeneratorN)r   r   r   r   r
   ©Úfuncr
   r   Ú	Generator(   s    
r!   )r   )r    r!   r
   r   r   Ú	generator'   s   r"   c                   @   s   e Zd Zdd„ ZdS )ÚGeneratorTestsc                    sV   g ‰ ‡ fdd„}t |ƒ}tdƒD ]}|dƒD ]}ˆ  |¡ qq|  ˆ dg d¢ ¡ d S )Nc                    s$   t | ƒD ]}ˆ  |¡ t|ƒ qd S r   )ÚrangeÚappendr   )ÚnÚi©Úseenr
   r   r   3   s   

þz(GeneratorTests.test_generator.<locals>.gé   é   )
r   r   r   r   é   r,   r*   r*   é   r-   )r"   r$   r%   ÚassertEqual)r	   r   Ú_Újr
   r(   r   Útest_generator0   s   ÿzGeneratorTests.test_generatorN)r   r   r   r1   r
   r
   r
   r   r#   /   s    r#   N)r   Ú r   r   r   r"   r#   r
   r
   r
   r   Ú<module>   s   	