
    擖ga                     r    S r SSKrSSKr " S S\R                  5      r\S:X  a  \R                  " 5         gg)z!Unit tests for the input.py file.    Nc                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestFindCycles   c                 |    0 U l         S H/  n[        R                  R                  U5      U R                   U'   M1     g )N)abcde)nodesgypinputDependencyGraphNode)selfxs     0/usr/lib/python3/dist-packages/gyp/input_test.pysetUpTestFindCycles.setUp   s/    
*AII99!<DJJqM +    c                 p    UR                   R                  U5        UR                  R                  U5        g N)dependenciesappend
dependents)r   	dependent
dependencys      r   _create_dependency!TestFindCycles._create_dependency   s*    %%j1$$Y/r   c                     U R                   R                  5        H%  u  pU R                  / UR                  5       5        M'     g r   )r   itemsassertEqual
FindCyclesr   labelnodes      r   test_no_cycle_empty_graph(TestFindCycles.test_no_cycle_empty_graph   s2    ::++-KER!23 .r   c                    U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  R                  5        H%  u  pU R                  / UR	                  5       5        M'     g )Nr   r   r	   r
   r   r   r    r!   r"   r#   s      r   test_no_cycle_line!TestFindCycles.test_no_cycle_line       

3CA

3CA

3CA::++-KER!23 .r   c                    U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  R                  5        H%  u  pU R                  / UR	                  5       5        M'     g )Nr   r   r	   r)   r#   s      r   test_no_cycle_dag TestFindCycles.test_no_cycle_dag#   r,   r   c                     U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   //U R                  S   R                  5       5        g )Nr   r   r   r!   r"   r   s    r   test_cycle_self_reference(TestFindCycles.test_cycle_self_reference+   s^    

3CAjjotzz#/0$**S/2L2L2N	
r   c                    U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   U R                  S   //U R                  S   R                  5       5        U R                  U R                  S   U R                  S   U R                  S   //U R                  S   R                  5       5        g )Nr   r   r1   r2   s    r   test_cycle_two_nodes#TestFindCycles.test_cycle_two_nodes2   s    

3CA

3CAjjotzz#

3@AJJsO&&(	
 	jjotzz#

3@AJJsO&&(	
r   c                    U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  S   R                  5       nU R                  U R                  S   U R                  S   U R                  S   /U;   5        U R                  U R                  S   U R                  S   U R                  S   /U;   5        U R	                  S[        U5      5        g )Nr   r   r	      )r   r   r"   
assertTruer!   len)r   cycless     r   test_two_cyclesTestFindCycles.test_two_cycles?   s   

3CA

3CA

3CA

3CAC++-C$**S/4::c?KvUVC$**S/4::c?KvUVCK(r   c           	         U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   5        U R                  U R                  S   U R                  S   U R                  S   U R                  S   U R                  S   U R                  S   //U R                  S   R                  5       5        g )Nr   r   r	   r
   r   r1   r2   s    r   test_big_cycleTestFindCycles.test_big_cycleK   s   

3CA

3CA

3CA

3CA

3CA JJsOJJsOJJsOJJsOJJsOJJsO	 JJsO&&(	
r   )r   N)__name__
__module____qualname____firstlineno__r   r   r&   r*   r.   r3   r6   r=   r@   __static_attributes__ r   r   r   r      s/    =
0444


)
r   r   __main__)__doc__	gyp.inputr   unittestTestCaser   rB   mainrG   r   r   <module>rN      s=    (  Q
X&& Q
h zMMO r   