
    ڏDjK                     |    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    fC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\Cython/Compiler/Tests/TestTreePath.py_build_treezTestTreePath._build_tree	   s1    ::**2 0 DJ zz    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HMMO r   