o
    £€jct  ã                   @   s6   d dl Z d dlZd dlZd dlZG dd„ dejƒZdS )é    Nc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚWeakRefTestsc                 C   s.   dd„ }t  |ƒ ¡}t ¡  |  |ƒ d ¡ d S )Nc                  S   s   t   dd„ ¡} |  ¡  | S )Nc                   S   ó   d S ©N© r   r   r   úF/usr/local/lib/python3.10/dist-packages/greenlet/tests/test_weakref.pyÚ<lambda>
   ó    zHWeakRefTests.test_dead_weakref.<locals>._dead_greenlet.<locals>.<lambda>)ÚgreenletÚswitch)Úgr   r   r   Ú_dead_greenlet	   s   z6WeakRefTests.test_dead_weakref.<locals>._dead_greenlet)ÚweakrefÚrefÚgcÚcollectÚassertEqual)Úselfr   Úor   r   r   Útest_dead_weakref   s   zWeakRefTests.test_dead_weakrefc                 C   s(   t  t ¡ ¡}t ¡  |  |ƒ d ¡ d S r   )r   r   r	   r   r   r   )r   r   r   r   r   Útest_inactive_weakref   s   z"WeakRefTests.test_inactive_weakrefc                    sT   g ‰‡ ‡fdd„}t   |¡‰ ˆ  ¡  t   dd„ ˆ ¡}t |¡‰ d }|  ˆd g¡ d S )Nc                	      s0   zt  ¡ j ¡  W ˆ ˆ ƒ ¡ d S ˆ ˆ ƒ ¡ w r   )r	   Ú
getcurrentÚparentr
   Úappendr   ©r   Úseenr   r   Úworker   s   z1WeakRefTests.test_dealloc_weakref.<locals>.workerc                   S   r   r   r   r   r   r   r   r      r   z3WeakRefTests.test_dealloc_weakref.<locals>.<lambda>)r	   r
   r   r   r   )r   r   Úg2r   r   r   Útest_dealloc_weakref   s   

z!WeakRefTests.test_dealloc_weakrefN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r      s    	r   )r   r	   r   ÚunittestÚTestCaser   r   r   r   r   Ú<module>   s
    