+
    VBi                         ^ RI t ^ RIHt ^ RIHtHt ^ RIHtHt  ! R R]4      t	]
R8X  d   ] P                  ! 4        R# R# )    N)TransformTest)
find_firstfind_all)Nodes	ExprNodesc                   x   a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tRtV tR# )TestTreePathNc                d    V P                   f   V P                  . R4      V n         V P                   # )Nz
            def decorator(fun):  # DefNode
                return fun       # ReturnStatNode, NameNode
            @decorator           # NameNode
            def decorated():     # DefNode
                pass
            )_treerun_pipeline)selfs   &G/usr/lib/python3.14/site-packages/Cython/Compiler/Tests/TestTreePath.py_build_treeTestTreePath._build_tree	   s1    ::**2 0 DJ zz    c           	     N   V P                  4       pV P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       R# )   z	//DefNodez
//NameNodez//ReturnStatNodez//DefNode//ReturnStatNodeNr   assertEquallenr   r   ts   & r   test_node_pathTestTreePath.test_node_path   s    CK 89:CL 9:;C,> ?@AC,G HIJr   c           	        V P                  4       pV P                  ^
\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^ \        \        VR4      4      4       R# )
   z//*z//DefNode//*z//NameNode//*Nr   r   s   & r   test_node_path_star TestTreePath.test_node_path_star   sd    S!U!345CN ;<=CO <=>r   c           	         V P                  4       pV P                  ^\        \        VR4      4      4       V P                  RR.\        VR4      4       R# )r   z//NameNode/@namefun	decoratorNr   r   s   & r   test_node_path_attribute%TestTreePath.test_node_path_attribute!   sJ    C,> ?@A%-x;M/NOr   c           	         V P                  4       pV P                  ^\        \        VR4      4      4       V P                  R.\        VR4      4       R# )   z//ReturnStatNode/@value.namer    Nr   r   s   & r   test_node_path_attribute_dotted,TestTreePath.test_node_path_attribute_dotted&   sG    C,J KLM%(1.L"MNr   c           	         V P                  4       pV P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       R# )r%   z!//DefNode/ReturnStatNode/NameNodez//ReturnStatNode/NameNodeNr   r   s   & r   test_node_path_child!TestTreePath.test_node_path_child+   sJ    C,O PQRC,G HIJr   c           	     j   V P                  4       pV P                  ^ \        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  \        P
                  \        \        VR4      4      4       R# )r   z//DefNode[.//ForInStatNode]//DefNode[.//NameNode]z//ReturnStatNode[./NameNode]Nr   r   r   r   r   ReturnStatNodetyper   r   s   & r   test_node_path_node_predicate*TestTreePath.test_node_path_node_predicate0   s    C,I JKLC,D EFGC,J KLM--j,JKL	Nr   c           	     j   V P                  4       pV P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  \        P
                  \        \        VR4      4      4       R# )r   r,   z//DefNode[.//NameNode]//*z&//DefNode[.//NameNode]//ReturnStatNodeNr-   r   s   & r   "test_node_path_node_predicate_step/TestTreePath.test_node_path_node_predicate_step8   s    C,D EFGC,G HIJC,T UVW--j,TUV	Xr   c           	         V P                  4       pV P                  ^\        \        VR4      4      4       V P                  \        P
                  \        \        VR4      4      4       R# )r   //NameNode[@name]N)r   r   r   r   r   NameNoder/   r   r   s   & r   test_node_path_attribute_exists,TestTreePath.test_node_path_attribute_exists@   sT    C,? @AB++j,?@A	Cr   c           	         V P                  4       pV P                  ^ \        \        VR4      4      4       V P                  ^\        \        VR4      4      4       R# )r   z//NameNode[not(@name)]z//NameNode[not(@honking)]Nr   r   s   & r   #test_node_path_attribute_exists_not0TestTreePath.test_node_path_attribute_exists_notF   sJ    C,D EFGC,G HIJr   c           	        V P                  4       pV P                  ^\        \        VR4      4      4       V P                  ^ \        \        VR4      4      4       V P                  ^ \        \        VR4      4      4       V P                  ^ \        \        VR4      4      4       V P                  ^\        \        VR4      4      4       R# )r%   z,//DefNode[.//ReturnStatNode and .//NameNode]z1//DefNode[.//ReturnStatNode and .//DecoratorNode]z//NameNode[@honking and @name]z//NameNode[@name and @honking]z'//DefNode[.//NameNode[@name] and @name]Nr   r   s   & r   test_node_path_andTestTreePath.test_node_path_andK   s    C,Z [\]C,_ `abC,L MNOC,L MNOC,U VWXr   c           	        V P                  4       pV P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^ \        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       R# )r   z0//DefNode[.//ReturnStatNode or .//DecoratorNode]r6   z//NameNode[@honking]z//NameNode[@name or @honking]z//NameNode[@honking or @name]z&//DefNode[.//NameNode[@name] or @name]Nr   r   s   & r   test_node_path_orTestTreePath.test_node_path_orS   s    C,^ _`aC,? @ABC,B CDEC,K LMNC,K LMNC,T UVWr   c           	     p    V P                  4       pV P                  ^\        \        VR4      4      4       R# )r%   z//NameNode[@name = 'decorator']Nr   r   s   & r   )test_node_path_attribute_string_predicate6TestTreePath.test_node_path_attribute_string_predicate\   s-    C,M NOPr   c           	        V P                  4       pV P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       V P                  ^\        \        VR4      4      4       R# )r   z//DefNode[.//NameNode[@name]]z+//DefNode[.//NameNode[@name = 'decorator']]z@//DefNode[.//ReturnStatNode[./NameNode[@name = 'fun']]/NameNode]Nr   r   s   & r   "test_node_path_recursive_predicate/TestTreePath.test_node_path_recursive_predicate`   sg    C,K LMNC,Y Z[\C,n opqr   )r   )__name__
__module____qualname____firstlineno__r   r   r   r   r"   r&   r)   r0   r3   r8   r;   r>   rA   rD   rG   __static_attributes____classdictcell__)__classdict__s   @r   r	   r	      sb     E	K?P
O
K
NXCK
YXQr rr   r	   __main__)unittestCython.TestUtilsr   Cython.Compiler.TreePathr   r   Cython.Compilerr   r   r	   rI   main r   r   <module>rW      s:     * 9 ,^r= ^r@ zMMO r   