Ë
    Ç[;jK  ã                   ó|   — d dl Z d dlmZ d dlmZmZ d dlmZmZ  G d„ de«      Z	e
dk(  r e j                  «        yy)é    N)ÚTransformTest)Ú
find_firstÚfind_all)ÚNodesÚ	ExprNodesc                   ód   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestTreePathNc                 ó`   — | j                   €| j                  g d«      | _         | j                   S )Nzà
            def decorator(fun):  # DefNode
                return fun       # ReturnStatNode, NameNode
            @decorator           # NameNode
            def decorated():     # DefNode
                pass
            )Ú_treeÚrun_pipeline)Úselfs    úkG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Compiler/Tests/TestTreePath.pyÚ_build_treezTestTreePath._build_tree	   s1   € Ø�:‰:ÐØ×*Ñ*¨2ð 0ó ˆDŒJð �z‰zÐó    c           	      óL  — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       y )Né   z	//DefNodez
//NameNodeé   z//ReturnStatNodez//DefNode//ReturnStatNode©r   ÚassertEqualÚlenr   ©r   Úts     r   Útest_node_pathzTestTreePath.test_node_path   s‚   € Ø×ÑÓˆØ×Ñ˜œC¤¨¨KÓ 8Ó9Ô:Ø×Ñ˜œC¤¨¨LÓ 9Ó:Ô;Ø×Ñ˜œC¤¨Ð,>Ó ?Ó@ÔAØ×Ñ˜œC¤¨Ð,GÓ HÓIÕJr   c           	      ó  — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       y )Né
   z//*é   z//DefNode//*r   z//NameNode//*r   r   s     r   Útest_node_path_starz TestTreePath.test_node_path_star   sd   € Ø×ÑÓˆØ×Ñ˜œS¤¨!¨UÓ!3Ó4Ô5Ø×Ñ˜œC¤¨¨NÓ ;Ó<Ô=Ø×Ñ˜œC¤¨¨OÓ <Ó=Õ>r   c           	      óª   — | j                  «       }| j                  dt        t        |d«      «      «       | j                  ddgt        |d«      «       y )Nr   z//NameNode/@nameÚfunÚ	decoratorr   r   s     r   Útest_node_path_attributez%TestTreePath.test_node_path_attribute!   sJ   € Ø×ÑÓˆØ×Ñ˜œC¤¨Ð,>Ó ?Ó@ÔAØ×Ñ˜% Ð-¬x¸Ð;MÓ/NÕOr   c           	      ó¨   — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dgt        |d«      «       y )Nr   z//ReturnStatNode/@value.namer   r   r   s     r   Útest_node_path_attribute_dottedz,TestTreePath.test_node_path_attribute_dotted&   sG   € Ø×ÑÓˆØ×Ñ˜œC¤¨Ð,JÓ KÓLÔMØ×Ñ˜%˜¤(¨1Ð.LÓ"MÕNr   c           	      ó¸   — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       y )Nr   z!//DefNode/ReturnStatNode/NameNodez//ReturnStatNode/NameNoder   r   s     r   Útest_node_path_childz!TestTreePath.test_node_path_child+   sJ   € Ø×ÑÓˆØ×Ñ˜œC¤¨Ð,OÓ PÓQÔRØ×Ñ˜œC¤¨Ð,GÓ HÓIÕJr   c           	      óh  — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  t        j
                  t        t        |d«      «      «       y )Nr   z//DefNode[.//ForInStatNode]r   ú//DefNode[.//NameNode]r   z//ReturnStatNode[./NameNode]©r   r   r   r   r   ÚReturnStatNodeÚtyper   r   s     r   Útest_node_path_node_predicatez*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           	      óh  — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  t        j
                  t        t        |d«      «      «       y )Nr   r'   r   z//DefNode[.//NameNode]//*r   z&//DefNode[.//NameNode]//ReturnStatNoder(   r   s     r   Ú"test_node_path_node_predicate_stepz/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           	      óÔ   — | j                  «       }| j                  dt        t        |d«      «      «       | j                  t        j
                  t        t        |d«      «      «       y )Nr   ú//NameNode[@name])r   r   r   r   r   ÚNameNoder*   r   r   s     r   Útest_node_path_attribute_existsz,TestTreePath.test_node_path_attribute_exists@   sT   € Ø×ÑÓˆØ×Ñ˜œC¤¨Ð,?Ó @ÓAÔBØ×Ñœ×+Ñ+Üœj¨Ð,?Ó@ÓAõ	Cr   c           	      ó¸   — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       y )Nr   z//NameNode[not(@name)]r   z//NameNode[not(@honking)]r   r   s     r   Ú#test_node_path_attribute_exists_notz0TestTreePath.test_node_path_attribute_exists_notF   sJ   € Ø×ÑÓˆØ×Ñ˜œC¤¨Ð,DÓ EÓFÔGØ×Ñ˜œC¤¨Ð,GÓ HÓIÕJr   c           	      ó–  — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       y )	Nr   z,//DefNode[.//ReturnStatNode and .//NameNode]r   z1//DefNode[.//ReturnStatNode and .//DecoratorNode]z//NameNode[@honking and @name]z//NameNode[@name and @honking]r   z'//DefNode[.//NameNode[@name] and @name]r   r   s     r   Útest_node_path_andz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           	      óà  — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       y )	Nr   z0//DefNode[.//ReturnStatNode or .//DecoratorNode]r/   r   z//NameNode[@honking]z//NameNode[@name or @honking]z//NameNode[@honking or @name]z&//DefNode[.//NameNode[@name] or @name]r   r   s     r   Útest_node_path_orz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           	      ón   — | j                  «       }| j                  dt        t        |d«      «      «       y )Nr   z//NameNode[@name = 'decorator']r   r   s     r   Ú)test_node_path_attribute_string_predicatez6TestTreePath.test_node_path_attribute_string_predicate\   s-   € Ø×ÑÓˆØ×Ñ˜œC¤¨Ð,MÓ NÓOÕPr   c           	      ó  — | j                  «       }| j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       | j                  dt        t        |d«      «      «       y )Nr   z//DefNode[.//NameNode[@name]]r   z+//DefNode[.//NameNode[@name = 'decorator']]z@//DefNode[.//ReturnStatNode[./NameNode[@name = 'fun']]/NameNode]r   r   s     r   Ú"test_node_path_recursive_predicatez/TestTreePath.test_node_path_recursive_predicate`   sg   € Ø×ÑÓˆØ×Ñ˜œC¤¨Ð,KÓ LÓMÔNØ×Ñ˜œC¤¨Ð,YÓ ZÓ[Ô\Ø×Ñ˜œC¤¨Ð,nÓ oÓpÕqr   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r!   r#   r%   r+   r-   r1   r3   r5   r7   r9   r;   © r   r   r	   r	      sY   „ Ø€Eò	òKò?òPò
Oò
Kò
NòXòCòKò
YòXòQórr   r	   Ú__main__)ÚunittestÚCython.TestUtilsr   ÚCython.Compiler.TreePathr   r   ÚCython.Compilerr   r   r	   r<   Úmainr?   r   r   Ú<module>rF      s<   ðÛ Ý *ß 9ß ,ô^r�=ô ^rð@ ˆzÒØ€H‡M�M…Oð r   