
    i                        d Z ddlmZ ddlZddlmZ ddlmZm	Z	m
Z
mZmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZmZ ddlm Z   G d de          Z!dS )z1Test cases for graph processing code in build.py.    )annotationsN)Set)BuildManagerBuildSourceSetState
order_asccsorted_components)Errors)FileSystemCache)strongly_connected_componentstopsort)SearchPaths)Options)Plugin)Reports)Suiteassert_equal)__version__c                  n    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dZddZddZdS )
GraphSuitereturnNonec                ^    i }t          t          t          |                    g            d S N)r   listr   )selfdatas     R/root/projects/qq-shell/venv/lib64/python3.11/site-packages/mypy/test/testgraph.pytest_topsort_emptyzGraphSuite.test_topsort_empty   s+    >@T'$--(("-----    c                   t          dh          }t          dh          }t          dh          }t          dh          }|||h||h||hi}t          t          |                    }t          ||h||h|hg           d S NABCD	frozensetr   r   r   r   abcdr   ress          r   test_topsortzGraphSuite.test_topsort   s    sesesese?@1a&!aSRSVWUX>Y74==!!SA3A,-----r    c                    t          dh          }t          dh          }||hi}t          t          |                    }t          ||h|hg           d S Nr#   r$   r'   r   r*   r+   r   r.   s        r   test_topsort_orphanzGraphSuite.test_topsort_orphan"   s\    sese?@1#h74==!!SA3*%%%%%r    c                   t          dh          }t          dh          }t          dh          }|t                      |t                      |t                      i}t          t          |                    }t	          ||||hg           d S Nr#   r$   r%   r(   setr   r   r   r   r*   r+   r,   r   r.   s         r   test_topsort_independentz#GraphSuite.test_topsort_independent)   s    sesese?@#%%CEESTVYV[V[>\74==!!SAq!9+&&&&&r    c           	         t          dh          }t          dh          }t          dh          }t          dh          }||h||h||h|t                      i}t          t          |                    }t	          ||h|h|h|hg           d S r"   r6   r)   s          r   test_topsort_linear_chainz$GraphSuite.test_topsort_linear_chain1   s    sesesese?@1#q1#qSTRUWXZ]Z_Z_>`74==!!SA3aS1#./////r    c                    t          dh          }t          dh          }|||h|t                      i}t          t          |                    }t	          ||h|hg           d S r1   r6   r2   s        r   test_topsort_self_dependencyz'GraphSuite.test_topsort_self_dependency:   sg    sese?@1a&!SUU>S74==!!SA3*%%%%%r    c                    t          dh          }t          dh          }t          dh          }|||hi}t          t          |                    }t          |||h|hg           d S r5   r'   r8   s         r   test_topsort_orphan_diamondz&GraphSuite.test_topsort_orphan_diamondA   so    sesese?@1a&k74==!!SAq6A3-(((((r    c                    t          dh          }t          dh          }||h||hi}|                     t                    5  t          t	          |                     d d d            d S # 1 swxY w Y   d S r1   )r(   assertRaisesAssertionErrorr   r   )r   r*   r+   r   s       r   test_topsort_cyclezGraphSuite.test_topsort_cycleJ   s    sese?@1#q1#>N~.. 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   A--A14A1c                    h d}ddgdgddgg d}d t          ||          D             }t          |t          dh          t          ddh          t          dh          h           d S )N>   r#   r$   r%   r&   r$   r%   r&   )r#   r$   r%   r&   c                ,    h | ]}t          |          S  )r(   ).0xs     r   	<setcomp>z&GraphSuite.test_scc.<locals>.<setcomp>T   s    UUU	!UUUr    r#   )r   r   r(   )r   verticesedgessccss       r   test_scczGraphSuite.test_sccQ   s    '''-0#JcU#sZ\&]&]UU&CHe&T&TUUUTIse,,ic
.C.CYPSuEUEUVWWWWWr    r   c                L   t                      }d|_        t          |          }t                      }t	          dddd          }t          d|dt          g           t          di           |t          t          |          i |d |t          j        t          j                  }|S )NTrF    c                    d S r   rF   )filenamemsgsseriouss      r   <lambda>z*GraphSuite._make_manager.<locals>.<lambda>h   s     r    )data_dirsearch_pathsignore_prefix
source_setreportsoptions
version_idpluginplugins_snapshoterrorsflush_errorsfscachestdoutstderr)r   use_builtins_fixturesr
   r   r   r   r   r   r   r   sysra   rb   )r   rZ   r^   r`   rV   managers         r   _make_managerzGraphSuite._make_managerW   s    ))(,%!##"2r2r22%%b))BOO"'??==::
 
 
  r    c           
     t   |                                  }t          j        dd d|          t          j        dd d|          t          j        dd d|          t          j        dd d|          t          j        d	d d
|          d}d t          |          D             }t	          |d	hdhddhdhg           d S )Nr*   import b, cr-   passr+   import cr,   import b, dbuiltinsrO   r*   r-   r+   r,   rl   c                    g | ]	}|j         
S rF   mod_idsrG   sccs     r   
<listcomp>z5GraphSuite.test_sorted_components.<locals>.<listcomp>x       ???ss{???r    )rf   r   	new_stater	   r   )r   re   graphr.   s       r   test_sorted_componentsz!GraphSuite.test_sorted_componentso   s    $$&&dM7CCdFG<<dJ@@dM7CC
D"gFF
 
 @?&7&>&>???SJ<#c
SEBCCCCCr    c           
        |                                  }t          j        dd d|          t          j        dd d|          t          j        dd d|          t          j        dd d|          t          j        d	d d
|          d}d t          |          D             }t	          |d	hh dg           |d         }t          ||          }t	          |g d           d S )Nr*   rh   r-   zdef f(): import ar+   rj   r,   rk   rl   rO   rm   c                    g | ]	}|j         
S rF   ro   rq   s     r   rs   z.GraphSuite.test_order_ascc.<locals>.<listcomp>   rt   r    >   r*   r+   r,   r-      )r-   r,   r+   r*   )rf   r   ru   r	   r   r   )r   re   rv   r.   asccrr   s         r   test_order_ascczGraphSuite.test_order_ascc{   s    $$&&dM7CCd,?IIdJ@@dM7CC
D"gFF
 
 @?&7&>&>???SJ<)=)=)=>???1v%%S.../////r    N)r   r   )r   r   )__name__
__module____qualname__r   r/   r3   r9   r;   r=   r?   rC   rM   rf   rw   r|   rF   r    r   r   r      s       . . . .. . . .& & & &' ' ' '0 0 0 0& & & &) ) ) )       X X X X   0
D 
D 
D 
D0 0 0 0 0 0r    r   )"__doc__
__future__r   rd   collections.abcr   AbstractSet
mypy.buildr   r   r   r   r	   mypy.errorsr
   mypy.fscacher   mypy.graph_utilsr   r   mypy.modulefinderr   mypy.optionsr   mypy.pluginr   mypy.reportr   mypy.test.helpersr   r   mypy.versionr   r   rF   r    r   <module>r      sN   7 7 " " " " " " 



 . . . . . . Y Y Y Y Y Y Y Y Y Y Y Y Y Y       ( ( ( ( ( ( C C C C C C C C ) ) ) ) ) )                         1 1 1 1 1 1 1 1 $ $ $ $ $ $t0 t0 t0 t0 t0 t0 t0 t0 t0 t0r    