o
    ßË·e!  ã                   @   sN   d dl Z d dlZd dlm  mZ d dlmZ G dd„ dƒZG dd„ dƒZ	dS )é    N)Úedges_equalc                   @   sd   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S )ÚTestGeneratorLinec                 C   s.   t  d¡}t  |¡}t  |t  d¡¡sJ ‚d S ©Né   )ÚnxÚ
star_graphÚ
line_graphÚis_isomorphicÚcomplete_graph©ÚselfÚGÚL© r   úZ/var/www/ideatree/venv/lib/python3.10/site-packages/networkx/generators/tests/test_line.pyÚ	test_star	   ó   

zTestGeneratorLine.test_starc                 C   s.   t  d¡}t  |¡}t  |t  d¡¡sJ ‚d S )Nr   é   )r   Ú
path_graphr   r	   r   r   r   r   Ú	test_path   r   zTestGeneratorLine.test_pathc                 C   ó(   t  d¡}t  |¡}t  ||¡sJ ‚d S r   )r   Úcycle_graphr   r	   r   r   r   r   Ú
test_cycle   ó   

zTestGeneratorLine.test_cyclec                 C   s2   t  g d¢¡}t  |¡}|ji i i dœksJ ‚d S )N)©r   é   ©r   é   ©r   é   )r   ÚDiGraphr   Úadjr   r   r   r   Útest_digraph1   s   
zTestGeneratorLine.test_digraph1c                 C   ó2   t  g d¢¡}t  |¡}t| ¡ g d¢ƒsJ ‚d S )N)r   r   )r   r   r   )r   r   r   ))©r   r   r   ©r   r   r   )r$   ©r   r   r   )r$   ©r   r   r   )r$   ©r   r   r   )r$   ©r   r   r   )r%   r(   )r%   r&   )r%   r)   )r%   r'   )r(   r)   )r(   r&   )r(   r'   )r)   r&   )r)   r'   )r&   r'   ©r   Ú
MultiGraphr   r   Úedgesr   r   r   r   Útest_multigraph1   s   
þz"TestGeneratorLine.test_multigraph1c                 C   s0   t  ddg¡}t  |¡}t| ¡ dgƒsJ ‚d S )N©r   r   ©r   r   )©r   r   r   )r   r   r   r*   r   r   r   r   Útest_multigraph27   s   
z"TestGeneratorLine.test_multigraph2c                 C   s2   t  ddg¡}t  |¡}t| ¡ ddgƒsJ ‚d S )Nr.   r/   )r0   ©r   r   r   )r2   r0   ©r   ÚMultiDiGraphr   r   r,   r   r   r   r   Útest_multidigraph1<   ó   
z$TestGeneratorLine.test_multidigraph1c                 C   r#   )N)r   r   r   r.   ))r%   r0   )r(   r0   )r)   r0   r3   r   r   r   r   Útest_multidigraph2A   s   
þz$TestGeneratorLine.test_multidigraph2c                 C   s2   t  g d¢¡}t  |¡}t| ¡ ddgƒsJ ‚d S )N©r   r.   ©r   r   ©r   r.   ©r.   r9   )r   r    r   r   r,   r   r   r   r   Útest_digraph2I   r6   zTestGeneratorLine.test_digraph2c                 C   ó:   t  g d¢¡}t j|t  ¡ d}t| ¡ ddgƒsJ ‚d S ©Nr8   )Úcreate_usingr:   r;   )r   r    r   ÚGraphr   r,   r   r   r   r   Útest_create1N   ó   zTestGeneratorLine.test_create1c                 C   r=   r>   )r   r@   r   r    r   r,   r   r   r   r   Útest_create2S   rB   zTestGeneratorLine.test_create2N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r"   r-   r1   r5   r7   r<   rA   rC   r   r   r   r   r      s    r   c                   @   s¤   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d„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'S )(ÚTestGeneratorInverseLinec                 C   sœ   t  ¡ }ddgddgddgddgddgddgddgddgddgddgddgddgddgg}| |¡ t  |¡}t  ¡ }g d	¢}| |¡ t  ||¡sLJ ‚d S )
Nr   r   r   r   r   é   é   é   ))ÚaÚb©rK   Úc)rK   Úd)rK   Úe©rN   rO   )rP   Úf)rP   Úg)rR   rS   ©r   r@   Úadd_edges_fromÚinverse_line_graphr	   ©r   r   ÚG_edgesÚHÚsolutionÚsolution_edgesr   r   r   Útest_exampleZ   s*   ó



z%TestGeneratorInverseLine.test_examplec                 C   sr   t  ¡ }ddgddgddgddgddgddgg}| |¡ t  |¡}t  ¡ }g d¢}| |¡ t  ||¡s7J ‚d S )Nr   r   r   r   r   )rM   )rL   rN   rQ   )rO   rP   )rO   rR   rT   rW   r   r   r   Útest_example_2{   s   (


z'TestGeneratorInverseLine.test_example_2c                 C   s2   t  d¡}t  |¡}t  d¡}t  ||¡sJ ‚d S )Nr   r   ©r   r   rV   r	   ©r   r   rY   rZ   r   r   r   Ú	test_pair…   ó   


z"TestGeneratorInverseLine.test_pairc                 C   s2   t  d¡}t  d¡}t  |¡}t  ||¡sJ ‚d S )Nr   rH   r^   )r   r   rZ   rY   r   r   r   Ú	test_line‹   ra   z"TestGeneratorInverseLine.test_linec                 C   s\   t  d¡}t  |¡}t  ¡ }| ddgddgddgg¡ t  ||¡s*t  ||¡s,J ‚d S d S )Nr   r   r   r   )r   r
   rV   r@   rU   r	   )r   r   rY   Úalternative_solutionr   r   r   Útest_triangle_graph‘   s
   

$z,TestGeneratorInverseLine.test_triangle_graphc                 C   r   r   )r   r   rV   r	   ©r   r   rY   r   r   r   r   š   r   z#TestGeneratorInverseLine.test_cyclec                 C   s,   t  ¡ }t  |¡}t  |t  d¡¡sJ ‚d S )Nr   )r   r@   rV   r	   r
   re   r   r   r   Ú
test_emptyŸ   s   
z#TestGeneratorInverseLine.test_emptyc                 C   s2   t  d¡}t  |¡}t  d¡}t  ||¡sJ ‚d S )Nr   r   )r   r
   rV   r   r	   r_   r   r   r   Útest_K1¤   ra   z TestGeneratorInverseLine.test_K1c                 C   s>   t  ¡ }ddgddgddgg}| |¡ t t jt j|¡ d S ©Nr   r   r   r   )r   r@   rU   ÚpytestÚraisesÚNetworkXErrorrV   ©r   r   rX   r   r   r   Ú	test_clawª   s   
z"TestGeneratorInverseLine.test_clawc                 C   sî   t  ¡ }ddgddgddgddgddgddgddgddgddgddgg
}| |¡ t t jt j|¡ t  ¡ }ddgddgddgddgddgddgddgddgddgg	}| |¡ t t jt j|¡ t  d¡}| dd¡ t t jt j|¡ d S )Nr   r   r   r   r   r   )	r   r@   rU   ri   rj   rk   rV   r
   Úremove_edge)r   r   rX   ÚK5mer   r   r   Útest_non_line_graph±   s<   ö
÷

z,TestGeneratorInverseLine.test_non_line_graphc                 C   sx   t  ¡ }ddgddgddgg}| |¡ t t jt j|¡ t  ¡ }ddgddgddgg}| |¡ t t jt j|¡ d S rh   )r   r    rU   ri   rj   ÚNetworkXNotImplementedrV   r+   rl   r   r   r   Útest_wrong_graph_typeÜ   s   

z.TestGeneratorInverseLine.test_wrong_graph_typec                 C   ó2   t  d¡}t  |¡}t  |¡}t  ||¡sJ ‚d S ©Né
   )r   r
   r   rV   r	   ©r   r   rY   ÚJr   r   r   Útest_line_inverse_line_completeç   ra   z8TestGeneratorInverseLine.test_line_inverse_line_completec                 C   rs   rt   ©r   r   r   rV   r	   rv   r   r   r   Útest_line_inverse_line_pathí   ra   z4TestGeneratorInverseLine.test_line_inverse_line_pathc                 C   rs   r   )r   Úhypercube_graphr   rV   r	   rv   r   r   r   Ú test_line_inverse_line_hypercubeó   ra   z9TestGeneratorInverseLine.test_line_inverse_line_hypercubec                 C   rs   rt   )r   r   r   rV   r	   rv   r   r   r   Útest_line_inverse_line_cycleù   ra   z5TestGeneratorInverseLine.test_line_inverse_line_cyclec                 C   rs   )Né   )r   r   r   rV   r	   rv   r   r   r   Útest_line_inverse_line_starÿ   ra   z4TestGeneratorInverseLine.test_line_inverse_line_starc                 C   s6   t  ddd¡}t  |¡}t  |¡}t  ||¡sJ ‚d S )Nr   r   r   )r   Úcomplete_multipartite_graphr   rV   r	   rv   r   r   r   Ú#test_line_inverse_line_multipartite  ó   

z<TestGeneratorInverseLine.test_line_inverse_line_multipartitec                 C   rs   )Nr   )r   Ú dorogovtsev_goltsev_mendes_graphr   rV   r	   rv   r   r   r   Útest_line_inverse_line_dgm  ra   z3TestGeneratorInverseLine.test_line_inverse_line_dgmc                 C   s6   t  g d¢¡}t  |¡}t  |¡}t  ||¡sJ ‚d S )N)r   r   r   rK   rL   rN   ry   rv   r   r   r   Útest_line_different_node_types  r‚   z7TestGeneratorInverseLine.test_line_different_node_typesN)rD   rE   rF   r\   r]   r`   rb   rd   r   rf   rg   rm   rp   rr   rx   rz   r|   r}   r   r   r„   r…   r   r   r   r   rG   Y   s(    !
	+rG   )
ri   Únetworkxr   Únetworkx.generators.lineÚ
generatorsÚlineÚnetworkx.utilsr   r   rG   r   r   r   r   Ú<module>   s    Q