o
    p.a{  ã                   @   sF   d Z ddlZddlZddlZG dd„ dejƒZedkr!e ¡  dS dS )z!Unit tests for the input.py file.é    Nc                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestFindCyclesc                 C   s&   i | _ dD ]}tj |¡| j |< qd S )N)ÚaÚbÚcÚdÚe)ÚnodesÚgypÚinputÚDependencyGraphNode)ÚselfÚx© r   ú0/usr/lib/python3/dist-packages/gyp/input_test.pyÚsetUp   s   ÿzTestFindCycles.setUpc                 C   s   |j  |¡ |j |¡ d S ©N)ÚdependenciesÚappendÚ
dependents)r   Ú	dependentÚ
dependencyr   r   r   Ú_create_dependency   s   z!TestFindCycles._create_dependencyc                 C   s(   | j  ¡ D ]\}}|  g | ¡ ¡ qd S r   )r   ÚitemsÚassertEqualsÚ
FindCycles©r   ÚlabelÚnoder   r   r   Útest_no_cycle_empty_graph   s   ÿz(TestFindCycles.test_no_cycle_empty_graphc                 C   sp   |   | jd | jd ¡ |   | jd | jd ¡ |   | jd | jd ¡ | j ¡ D ]\}}|  g | ¡ ¡ q)d S )Nr   r   r   r   ©r   r   r   r   r   r   r   r   r   Útest_no_cycle_line   ó   ÿz!TestFindCycles.test_no_cycle_linec                 C   sp   |   | jd | jd ¡ |   | jd | jd ¡ |   | jd | jd ¡ | j ¡ D ]\}}|  g | ¡ ¡ q)d S )Nr   r   r   r   r   r   r   r   Útest_no_cycle_dag$   r!   z TestFindCycles.test_no_cycle_dagc                 C   sD   |   | jd | jd ¡ |  | jd | jd gg| jd  ¡ ¡ d S )Nr   ©r   r   r   r   ©r   r   r   r   Útest_cycle_self_reference,   s   ÿz(TestFindCycles.test_cycle_self_referencec                 C   s”   |   | jd | jd ¡ |   | jd | jd ¡ |  | jd | jd | jd gg| jd  ¡ ¡ |  | jd | jd | jd gg| jd  ¡ ¡ d S )Nr   r   r#   r$   r   r   r   Útest_cycle_two_nodes2   s    ÿ ÿz#TestFindCycles.test_cycle_two_nodesc                 C   sÎ   |   | jd | jd ¡ |   | jd | jd ¡ |   | jd | jd ¡ |   | jd | jd ¡ | jd  ¡ }|  | jd | jd | jd g|v ¡ |  | jd | jd | jd g|v ¡ |  dt|ƒ¡ d S )Nr   r   r   é   )r   r   r   Ú
assertTruer   Úlen)r   Úcyclesr   r   r   Útest_two_cycles;   s   ÿÿzTestFindCycles.test_two_cyclesc              	   C   sÄ   |   | jd | jd ¡ |   | jd | jd ¡ |   | jd | jd ¡ |   | jd | jd ¡ |   | jd | jd ¡ |  | jd | jd | jd | jd | jd | jd gg| jd  ¡ ¡ d S )Nr   r   r   r   r   r#   r$   r   r   r   Útest_big_cycleI   s   ûúzTestFindCycles.test_big_cycleN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r"   r%   r&   r+   r,   r   r   r   r   r      s    	r   Ú__main__)	Ú__doc__Ú	gyp.inputr	   ÚunittestÚsysÚTestCaser   r-   Úmainr   r   r   r   Ú<module>   s   Kÿ