o
    DDiU                     @   sD   d dl mZ d dlmZ d dlZd dlmZmZ G dd deZ	dS )    )Counter)dedentN)data_providerUnitTestc                   @   s&   e Zd ZeddeddfddZdS )DuplicateLeafNodeTest))z
                foo = 'toplevel'
                fn1(foo)
                fn2(foo)
                def fn_def():
                    foo = 'shadow'
                    fn3(foo)
            codereturnNc                    s8   |  G  fdddt j}t t|}||  d S )Nc                       s.   e Zd ZdddZdejdef fddZdS )	z9DuplicateLeafNodeTest.test_tokenize.<locals>.CountVisitorr   Nc                 S   s   t  | _i | _d S )N)r   countnodes)self r   `/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_parser/tests/test_node_identity.py__init__    s   
zBDuplicateLeafNodeTest.test_tokenize.<locals>.CountVisitor.__init__nodec              
      sZ   | j t|  d7  <  | j t| dkd| d| jt|  || jt|< dS )N   z"Node duplication detected between z and T)r	   id
assertTruer
   get)r   r   	test_caser   r   on_visit$   s   zBDuplicateLeafNodeTest.test_tokenize.<locals>.CountVisitor.on_visit)r   N)__name__
__module____qualname__r   cstCSTNodeboolr   r   r   r   r   CountVisitor   s    
r   )r   
CSTVisitorparse_moduler   visit)r   r   r   moduler   r   r   test_tokenize   s   z#DuplicateLeafNodeTest.test_tokenize)r   r   r   r   strr"   r   r   r   r   r      s
    r   )
collectionsr   textwrapr   libcstr   libcst.testing.utilsr   r   r   r   r   r   r   <module>   s
   