§
    bŠtj™Š  ã                   ó–  — d dl Z d dlZd dlZd dlmZmZ d„ Z G d„ d¦  «        Z G d„ d¦  «        Z	ej
                             dej        ej        ej        ej        f¦  «        d	„ ¦   «         Zej
                             d
dddœdfddiddidœdff¦  «        d„ ¦   «         Zej
                             dej        ej        f¦  «        d„ ¦   «         Zej
                             d
dddœdfddiddidœdff¦  «        d„ ¦   «         Zej
                             dej        ej        f¦  «        d„ ¦   «         Zej
                             d
dddœdfddiddidœdff¦  «        d„ ¦   «         Zd„ Zd„ Zej
                             dej        ej        ej        ej        f¦  «        d„ ¦   «         Zej
                             dej        ej        f¦  «        d„ ¦   «         Zej
                             dej        ej        f¦  «        d„ ¦   «         Zd„ Zej
                             dej        ej        ej        ej        g¦  «        d„ ¦   «         Zej
                             dej        ej        ej        ej        g¦  «        d „ ¦   «         Zd!„ Zej
                             dej        ej        g¦  «        d"„ ¦   «         Zej
                             dej        ej        g¦  «        d#„ ¦   «         Z d$„ Z!ej
                             d% ej        ¦   «          ej        ¦   «          ej        ¦   «          ej        ¦   «         f¦  «        d&„ ¦   «         Z"ej
                             d% ej        ¦   «          ej        ¦   «         f¦  «        d'„ ¦   «         Z#ej
                             d% ej        ¦   «          ej        ¦   «         f¦  «        d(„ ¦   «         Z$dS ))é    N)Úedges_equalÚnodes_equalc                  ó`   — t          j        ¦   «         } t          j        | ¦  «        g k    sJ ‚d S ©N)ÚnxÚGraphÚdegree_histogram©ÚGs    úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/networkx/classes/tests/test_function.pyÚtest_degree_histogram_emptyr   	   s/   € Ý
Œ‰
Œ
€AÝÔ˜qÑ!Ô! RÒ'Ð'Ð'Ð'Ð'Ð'ó    c                   ó°   — 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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S )ÚTestFunctionc                 ó„  — t          j        g d¢g d¢g dœd¬¦  «        | _        ddddd	d
œ| _        t	          t          d¦  «        ¦  «        | _        g d¢| _        t          j        g d¢g d¢g dœ¦  «        | _	        ddddd	d
œ| _
        ddd	d	d	d
œ| _        t	          t          d¦  «        ¦  «        | _        g d¢| _        d S )N©é   é   é   ©r   r   r   ©r   r   é   ÚTest)Únamer   r   r   r   )r   r   r   r   r   é   ©©r   r   ©r   r   ©r   r   ©r   r   ©r   r   ©r   r   )r   r   r   ÚGdegreeÚlistÚrangeÚGnodesÚGedgesÚDiGraphÚDGÚDGin_degreeÚDGout_degreeÚDGnodesÚDGedges©Úselfs    r   Úsetup_methodzTestFunction.setup_method   sÒ   € Ý”˜i˜i˜i¨I¨I¨I¸"Ð=Ð=ÀFÐKÑKÔKˆŒØ  q¨Q°1Ð5Ð5ˆŒÝ�5 ™8œ8‘n”nˆŒØFÐFÐFˆŒÝ”*   ¨y¨y¨y¸RÐ@Ð@ÑAÔAˆŒØ  Q¨1°°qÐ9Ð9ˆÔØ ! a¨A°!¸Ð:Ð:ˆÔÝ�E !™HœH‘~”~ˆŒØGÐGÐGˆŒˆˆr   c                 ó  — t           j        j                             | j        ¦  «        }|d         dk    sJ ‚|d         rJ ‚|d         rJ ‚|d         dk    sJ ‚|d         dk    sJ ‚|d         d	k    sJ ‚|d
         dk    sJ ‚d S )NzName of Graphr   ÚDirectedÚ
MultigraphzNumber of nodesr   zNumber of edgeszAverage degree (min, max)z2.00 (0, 4)zNumber of connected componentsr   )r   ÚclassesÚfunctionÚ_create_describe_info_dictr   )r/   Ú	info_dicts     r   Útest_describe_info_dictz$TestFunction.test_describe_info_dict   s¶   € Ý”JÔ'×BÒBÀ4Ä6ÑJÔJˆ	Ø˜Ô)¨VÒ3Ð3Ð3Ð3Ø˜ZÔ(Ð(Ð(Ð(Ø˜\Ô*Ð*Ð*Ð*ØÐ*Ô+¨qÒ0Ð0Ð0Ð0ØÐ*Ô+¨qÒ0Ð0Ð0Ð0ØÐ4Ô5¸ÒFÐFÐFÐFØÐ9Ô:¸aÒ?Ð?Ð?Ð?Ð?Ð?r   c                 ó:  — t          | j                             ¦   «         t          t	          j        | j        ¦  «        ¦  «        ¦  «        sJ ‚t          | j                             ¦   «         t          t	          j        | j        ¦  «        ¦  «        ¦  «        sJ ‚d S r   )r   r   Únodesr$   r   r)   r.   s    r   Ú
test_nodeszTestFunction.test_nodes$   sp   € Ý˜4œ6Ÿ<š<™>œ>­4µ´¸¼Ñ0@Ô0@Ñ+AÔ+AÑBÔBÐBÐBÐBÝ˜4œ7Ÿ=š=™?œ?­Dµ´¸$¼'Ñ1BÔ1BÑ,CÔ,CÑDÔDÐDÐDÐDÐDÐDr   c           
      óš  — t          | j                             ¦   «         t          t	          j        | j        ¦  «        ¦  «        ¦  «        sJ ‚t          | j                             ¦   «         ¦  «        t          t	          j        | j        ¦  «        ¦  «        k    sJ ‚t          | j                             g d¢¬¦  «        t          t	          j        | j        g d¢¬¦  «        ¦  «        ¦  «        sJ ‚t          | j                             g d¢¬¦  «        ¦  «        t          t	          j        | j        g d¢¬¦  «        ¦  «        k    sJ ‚d S )N)r   r   r   ©Únbunch)r   r   Úedgesr$   r   Úsortedr)   r.   s    r   Ú
test_edgeszTestFunction.test_edges(   s"  € Ý˜4œ6Ÿ<š<™>œ>­4µ´¸¼Ñ0@Ô0@Ñ+AÔ+AÑBÔBÐBÐBÐBÝ�d”g—m’m‘o”oÑ&Ô&­&µ´¸$¼'Ñ1BÔ1BÑ*CÔ*CÒCÐCÐCÐCÝØŒF�LŠL 	 	 	ˆLÑ*Ô*­Dµ´¸$¼&ÈÈÈÐ1SÑ1SÔ1SÑ,TÔ,Tñ
ô 
ð 	
ð 	
ð 
õ �d”g—m’m¨9¨9¨9�mÑ5Ô5Ñ6Ô6½&ÝŒH�T”W Y Y YÐ/Ñ/Ô/ñ;
ô ;
ò 
ð 
ð 
ð 
ð 
ð 
r   c           
      óä  — t          | j                             ¦   «         t          t	          j        | j        ¦  «        ¦  «        ¦  «        sJ ‚t          | j                             ¦   «         ¦  «        t          t	          j        | j        ¦  «        ¦  «        k    sJ ‚t          | j                             ddg¬¦  «        t          t	          j        | j        ddg¬¦  «        ¦  «        ¦  «        sJ ‚t          | j                             ddg¬¦  «        ¦  «        t          t	          j        | j        ddg¬¦  «        ¦  «        k    sJ ‚t          | j                             d¬¦  «        t          t	          j        | j        d¬¦  «        ¦  «        ¦  «        sJ ‚t          | j                             d¬¦  «        ¦  «        t          t	          j        | j        d¬¦  «        ¦  «        k    sJ ‚d S )Nr   r   r=   Úweight©rC   )r   r   Údegreer$   r   r@   r)   r.   s    r   Útest_degreezTestFunction.test_degree2   sÁ  € Ý˜4œ6Ÿ=š=™?œ?­Dµ´¸4¼6Ñ1BÔ1BÑ,CÔ,CÑDÔDÐDÐDÐDÝ�d”g—n’nÑ&Ô&Ñ'Ô'­6µ"´)¸D¼GÑ2DÔ2DÑ+EÔ+EÒEÐEÐEÐEÝØŒF�MŠM ! Q ˆMÑ(Ô(­$­r¬y¸¼ÈÈAÈÐ/OÑ/OÔ/OÑ*PÔ*Pñ
ô 
ð 	
ð 	
ð 
õ �d”g—n’n¨Q°¨F�nÑ3Ô3Ñ4Ô4½ÝŒI�d”g q¨! fÐ-Ñ-Ô-ñ9
ô 9
ò 
ð 
ð 
ð 
õ ØŒF�MŠM ˆMÑ*Ô*­Dµ´¸4¼6È(Ð1SÑ1SÔ1SÑ,TÔ,Tñ
ô 
ð 	
ð 	
ð 
õ �d”g—n’n¨H�nÑ5Ô5Ñ6Ô6½&ÝŒI�d”g hÐ/Ñ/Ô/ñ;
ô ;
ò 
ð 
ð 
ð 
ð 
ð 
r   c                 óN  — t          | j                             d¦  «        ¦  «        t          t          j        | j        d¦  «        ¦  «        k    sJ ‚t          | j                             d¦  «        ¦  «        t          t          j        | j        d¦  «        ¦  «        k    sJ ‚d S )Nr   )r$   r   Ú	neighborsr   r)   r.   s    r   Útest_neighborszTestFunction.test_neighborsB   s†   € Ý�D”F×$Ò$ QÑ'Ô'Ñ(Ô(­Dµ´¸d¼fÀaÑ1HÔ1HÑ,IÔ,IÒIÐIÐIÐIÝ�D”G×%Ò% aÑ(Ô(Ñ)Ô)­Tµ"´,¸t¼wÈÑ2JÔ2JÑ-KÔ-KÒKÐKÐKÐKÐKÐKr   c                 óÞ   — | j                              ¦   «         t          j        | j         ¦  «        k    sJ ‚| j                             ¦   «         t          j        | j        ¦  «        k    sJ ‚d S r   )r   Únumber_of_nodesr   r)   r.   s    r   Útest_number_of_nodesz!TestFunction.test_number_of_nodesF   ó`   € ØŒv×%Ò%Ñ'Ô'­2Ô+=¸d¼fÑ+EÔ+EÒEÐEÐEÐEØŒw×&Ò&Ñ(Ô(­BÔ,>¸t¼wÑ,GÔ,GÒGÐGÐGÐGÐGÐGr   c                 óÞ   — | j                              ¦   «         t          j        | j         ¦  «        k    sJ ‚| j                             ¦   «         t          j        | j        ¦  «        k    sJ ‚d S r   )r   Únumber_of_edgesr   r)   r.   s    r   Útest_number_of_edgesz!TestFunction.test_number_of_edgesJ   rM   r   c                 óÞ   — | j                              ¦   «         t          j        | j         ¦  «        k    sJ ‚| j                             ¦   «         t          j        | j        ¦  «        k    sJ ‚d S r   )r   Úis_directedr   r)   r.   s    r   Útest_is_directedzTestFunction.test_is_directedN   s^   € ØŒv×!Ò!Ñ#Ô#¥r¤~°d´fÑ'=Ô'=Ò=Ð=Ð=Ð=ØŒw×"Ò"Ñ$Ô$­¬°t´wÑ(?Ô(?Ò?Ð?Ð?Ð?Ð?Ð?r   c           	      ó  — | j                              ¦   «         }g d¢}t          j        ||¦  «         t	          |                     |¦  «        g d¢¦  «        sJ ‚| j                              ¦   «         }t          j        ||d¬¦  «         t	          |                     |d¬¦  «        ddd	difdd
d	difddd	difg¦  «        sJ ‚| j                              ¦   «         }dg}t          j        ||¦  «         t          |t          | j         ¦  «        |z   ¦  «        sJ ‚| j                              ¦   «         }g }t          j        ||¦  «         t          |j        | j	        ¦  «        sJ ‚t	          |j        | j         j        ¦  «        sJ ‚d S )N©é   é   é   é   )©rV   rW   )rV   rX   ©rV   rY   ç       @rD   T©ÚdatarV   rW   rC   rX   rY   )
r   Úcopyr   Úadd_starr   r?   r   r$   r:   r&   ©r/   r   Únlists      r   Útest_add_starzTestFunction.test_add_starR   sˆ  € ØŒF�KŠK‰MŒMˆØ Ð Ð ˆÝ
Œ�A�uÑÔÐÝ˜1Ÿ7š7 5™>œ>Ð+IÐ+IÐ+IÑJÔJÐJÐJÐJàŒF�KŠK‰MŒMˆÝ
Œ�A�u SÐ)Ñ)Ô)Ð)ÝØ�GŠG�E ˆGÑ%Ô%à�R˜( C˜Ð)Ø�R˜( C˜Ð)Ø�R˜( C˜Ð)ðñ
ô 
ð 	
ð 	
ð 
ð ŒF�KŠK‰MŒMˆØ�ˆÝ
Œ�A�uÑÔÐÝ˜1�d 4¤6™lœl¨UÑ2Ñ3Ô3Ð3Ð3Ð3àŒF�KŠK‰MŒMˆØˆÝ
Œ�A�uÑÔÐÝ˜1œ7 D¤KÑ0Ô0Ð0Ð0Ð0Ý˜1œ7 D¤F¤LÑ1Ô1Ð1Ð1Ð1Ð1Ð1r   c           	      ó   — | j                              ¦   «         }g d¢}t          j        ||¦  «         t	          |                     |¦  «        g d¢¦  «        sJ ‚| j                              ¦   «         }t          j        ||d¬¦  «         t	          |                     |d¬¦  «        ddd	difdd
d	difd
dd	difg¦  «        sJ ‚| j                              ¦   «         }dg}t          j        ||¦  «         t	          |                     |¦  «        g ¦  «        sJ ‚t          |t          | j         ¦  «        dgz   ¦  «        sJ ‚| j                              ¦   «         }t          dg¦  «        }t          j        ||¦  «         t	          |                     dg¦  «        g ¦  «        sJ ‚t          |t          | j         ¦  «        dgz   ¦  «        sJ ‚| j                              ¦   «         }dg}t          j        ||¦  «         t	          |                     |¦  «        g ¦  «        sJ ‚t          |t          | j         ¦  «        dgz   ¦  «        sJ ‚| j                              ¦   «         }t          dg¦  «        }t          j        ||¦  «         t	          |                     dg¦  «        g ¦  «        sJ ‚t          |t          | j         ¦  «        dgz   ¦  «        sJ ‚| j                              ¦   «         }g }t          j        ||¦  «         t	          |j        | j         j        ¦  «        sJ ‚t          |t          | j         ¦  «        ¦  «        sJ ‚| j                              ¦   «         }t          g ¦  «        }t          j        ||¦  «         t	          |j        | j         j        ¦  «        sJ ‚t          |t          | j         ¦  «        ¦  «        sJ ‚d S )NrU   )rZ   ©rW   rX   ©rX   rY   r\   rD   Tr]   rV   rW   rC   rX   rY   Únode)	r   r_   r   Úadd_pathr   r?   r   r$   Úiterra   s      r   Útest_add_pathzTestFunction.test_add_pathn   sm  € ØŒF�KŠK‰MŒMˆØ Ð Ð ˆÝ
Œ�A�uÑÔÐÝ˜1Ÿ7š7 5™>œ>Ð+IÐ+IÐ+IÑJÔJÐJÐJÐJØŒF�KŠK‰MŒMˆÝ
Œ�A�u SÐ)Ñ)Ô)Ð)ÝØ�GŠG�E ˆGÑ%Ô%à�R˜( C˜Ð)Ø�R˜( C˜Ð)Ø�R˜( C˜Ð)ðñ
ô 
ð 	
ð 	
ð 
ð ŒF�KŠK‰MŒMˆØ�ˆÝ
Œ�A�uÑÔÐÝ˜1Ÿ7š7 5™>œ>¨2Ñ.Ô.Ð.Ð.Ð.Ý˜1�d 4¤6™lœl¨f¨XÑ5Ñ6Ô6Ð6Ð6Ð6àŒF�KŠK‰MŒMˆÝ�f�X‘”ˆÝ
Œ�A�uÑÔÐÝ˜1Ÿ7š7 F 8Ñ,Ô,¨bÑ1Ô1Ð1Ð1Ð1Ý˜1�d 4¤6™lœl¨f¨XÑ5Ñ6Ô6Ð6Ð6Ð6àŒF�KŠK‰MŒMˆØ�ˆÝ
Œ�A�uÑÔÐÝ˜1Ÿ7š7 5™>œ>¨2Ñ.Ô.Ð.Ð.Ð.Ý˜1�d 4¤6™lœl¨b¨TÑ1Ñ2Ô2Ð2Ð2Ð2àŒF�KŠK‰MŒMˆÝ�b�T‘
”
ˆÝ
Œ�A�uÑÔÐÝ˜1Ÿ7š7 B 4™=œ=¨"Ñ-Ô-Ð-Ð-Ð-Ý˜1�d 4¤6™lœl¨b¨TÑ1Ñ2Ô2Ð2Ð2Ð2àŒF�KŠK‰MŒMˆØˆÝ
Œ�A�uÑÔÐÝ˜1œ7 D¤F¤LÑ1Ô1Ð1Ð1Ð1Ý˜1�d 4¤6™lœlÑ+Ô+Ð+Ð+Ð+àŒF�KŠK‰MŒMˆÝ�R‘”ˆÝ
Œ�A�uÑÔÐÝ˜1œ7 D¤F¤LÑ1Ô1Ð1Ð1Ð1Ý˜1�d 4¤6™lœlÑ+Ô+Ð+Ð+Ð+Ð+Ð+r   c                 óh  — | j                              ¦   «         }g d¢}g d¢g d¢g}t          j        ||¦  «         t	          |                     |¦  «        ¦  «        |v sJ ‚| j                              ¦   «         }ddddifddddifdd	ddifd	dddifgddddifdd	ddifd	dddifddddifgg}t          j        ||d¬
¦  «         t	          |                     |d¬¦  «        ¦  «        |v sJ ‚| j                              ¦   «         }dg}t          j        ||¦  «         t          |t          | j         ¦  «        |z   ¦  «        sJ ‚| j                              ¦   «         }g }t          j        ||¦  «         t          |j        | j	        ¦  «        sJ ‚t          |j        | j         j        ¦  «        sJ ‚d S )NrU   )rZ   r[   re   rf   )rZ   re   rf   )rY   rV   rV   rW   rC   ç      ð?rY   rX   rD   Tr]   )r   r_   r   Ú	add_cycler@   r?   r   r$   r:   r&   r   )r/   r   rb   Úoklistss       r   Útest_add_cyclezTestFunction.test_add_cycle¢   sï  € ØŒF�KŠK‰MŒMˆØ Ð Ð ˆà4Ð4Ð4Ø4Ð4Ð4ð
ˆõ 	Œ�Q˜ÑÔÐÝ�a—g’g˜e‘n”nÑ%Ô%¨Ð0Ð0Ð0Ð0ØŒF�KŠK‰MŒMˆð �R˜( C˜Ð)Ø�R˜( C˜Ð)Ø�R˜( C˜Ð)Ø�R˜( C˜Ð)ð	ð �R˜( C˜Ð)Ø�R˜( C˜Ð)Ø�R˜( C˜Ð)Ø�R˜( C˜Ð)ð	ð
ˆõ 	Œ�Q˜ cÐ*Ñ*Ô*Ð*Ý�a—g’g˜e¨$�gÑ/Ô/Ñ0Ô0°GÐ;Ð;Ð;Ð;àŒF�KŠK‰MŒMˆØ�ˆÝ
Œ�Q˜ÑÔÐÝ˜1�d 4¤6™lœl¨UÑ2Ñ3Ô3Ð3Ð3Ð3àŒF�KŠK‰MŒMˆØˆÝ
Œ�Q˜ÑÔÐÝ˜1œ7 D¤KÑ0Ô0Ð0Ð0Ð0Ý˜1œ7 D¤F¤LÑ1Ô1Ð1Ð1Ð1Ð1Ð1r   c                 ó  — | j                              g d¢¦  «        j        t          j        | j         g d¢¦  «        j        k    sJ ‚| j                             g d¢¦  «        j        t          j        | j        g d¢¦  «        j        k    sJ ‚| j                              g d¢¦  «        j        t          j        | j         g d¢¦  «        j        k    sJ ‚| j                             g d¢¦  «        j        t          j        | j        g d¢¦  «        j        k    sJ ‚t          j        | j                              g d¢¦  «        g d¢¦  «        }|j        | j         usJ ‚|j        | j                              g d¢¦  «        j        k    sJ ‚d S )N)r   r   r   r   r   )r   ÚsubgraphÚadjr   r)   Úinduced_subgraphÚ_graph)r/   ÚHs     r   Útest_subgraphzTestFunction.test_subgraphÈ   sy  € àŒF�OŠO˜L˜L˜LÑ)Ô)Ô-µ´¸T¼VÀ\À\À\Ñ1RÔ1RÔ1VÒVÐVÐVÐVð ŒG×Ò˜\˜\˜\Ñ*Ô*Ô.µ"´+¸d¼gÀ|À|À|Ñ2TÔ2TÔ2XÒXÐXÐXÐXð ŒF�OŠO˜L˜L˜LÑ)Ô)Ô-ÝÔ" 4¤6¨<¨<¨<Ñ8Ô8Ô<ò=ð =ð =ð =ð ŒG×Ò˜\˜\˜\Ñ*Ô*Ô.ÝÔ" 4¤7¨L¨L¨LÑ9Ô9Ô=ò>ð >ð >ð >õ Ô ¤§¢°°°Ñ =Ô =¸y¸y¸yÑIÔIˆØŒx˜tœvÐ%Ð%Ð%Ð%ØŒu˜œŸš¨	¨	¨	Ñ2Ô2Ô6Ò6Ð6Ð6Ð6Ð6Ð6r   c                 ó  — | j                              ddg¦  «        j        t          j        | j         ddg¦  «        j        k    sJ ‚| j                             ddg¦  «        j        t          j        | j        ddg¦  «        j        k    sJ ‚d S )Nr"   r   )r   Úedge_subgraphrr   r   r)   r.   s    r   Útest_edge_subgraphzTestFunction.test_edge_subgraphÜ   s    € àŒF× Ò  &¨&Ð!1Ñ2Ô2Ô6ÝÔ ¤¨°Ð(8Ñ9Ô9Ô=ò>ð >ð >ð >ð ŒG×!Ò! 6¨6Ð"2Ñ3Ô3Ô7ÝÔ ¤¨&°&Ð)9Ñ:Ô:Ô>ò?ð ?ð ?ð ?ð ?ð ?r   c                 óÄ  — t          j        | j        d¬¦  «        }t          |t	          | j        ¦  «        ¦  «        sJ ‚|j        i k    sJ ‚|j        i                      | j                             ¦   «         i ¦  «        k    sJ ‚|j	        i                      | j                             ¦   «         i ¦  «        k    sJ ‚t          j        | j        ¦  «        }t          |t	          | j        ¦  «        ¦  «        sJ ‚|j        | j        j        k    sJ ‚|j        | j        j        k    sJ ‚|j	        i                      | j                             ¦   «         i ¦  «        k    sJ ‚d S )NF)Ú	with_data)
r   Úcreate_empty_copyr   r   r$   ÚgraphÚ_nodeÚfromkeysr:   Ú_adj©r/   r   s     r   Útest_create_empty_copyz#TestFunction.test_create_empty_copyæ   s+  € ÝÔ  ¤°5Ð9Ñ9Ô9ˆÝ˜1�d 4¤6™lœlÑ+Ô+Ð+Ð+Ð+ØŒw˜"Š}ˆ}ˆ}ˆ}ØŒw˜"Ÿ+š+ d¤f§l¢l¡n¤n°bÑ9Ô9Ò9Ð9Ð9Ð9ØŒv˜Ÿš T¤V§\¢\¡^¤^°RÑ8Ô8Ò8Ð8Ð8Ð8ÝÔ  ¤Ñ(Ô(ˆÝ˜1�d 4¤6™lœlÑ+Ô+Ð+Ð+Ð+ØŒw˜$œ&œ,Ò&Ð&Ð&Ð&ØŒw˜$œ&œ,Ò&Ð&Ð&Ð&ØŒv˜Ÿš T¤V§\¢\¡^¤^°RÑ8Ô8Ò8Ð8Ð8Ð8Ð8Ð8r   c                 óH   — t          j        | j        ¦  «        g d¢k    sJ ‚d S )N)r   r   r   r   r   )r   r	   r   r.   s    r   Útest_degree_histogramz"TestFunction.test_degree_histogramò   s*   € ÝÔ" 4¤6Ñ*Ô*¨o¨o¨oÒ=Ð=Ð=Ð=Ð=Ð=r   c                 ó  — t          j        | j        ¦  «        dk    sJ ‚t          j        | j        ¦  «        dk    sJ ‚t          j        ¦   «         }|                     d¦  «         t          j        |¦  «        dk    sJ ‚d S )Ng      à?g333333Ó?r   ç        )r   Údensityr   r)   r   Úadd_noder�   s     r   Útest_densityzTestFunction.test_densityõ   su   € ÝŒz˜$œ&Ñ!Ô! SÒ(Ð(Ð(Ð(ÝŒz˜$œ'Ñ"Ô" cÒ)Ð)Ð)Ð)ÝŒH‰JŒJˆØ	�
Š
�1‰ŒˆÝŒz˜!‰}Œ} Ò#Ð#Ð#Ð#Ð#Ð#r   c                 óì   — t          j        ¦   «         }|                     dd¦  «         t          j        |¦  «        dk    sJ ‚|                     dd¦  «         t          j        |¦  «        dk    sJ ‚d S )Nr   r†   r   r\   )r   r   Úadd_edger‡   r�   s     r   Útest_density_selfloopz"TestFunction.test_density_selfloopü   sm   € ÝŒH‰JŒJˆØ	�
Š
�1�aÑÔÐÝŒz˜!‰}Œ} Ò#Ð#Ð#Ð#Ø	�
Š
�1�aÑÔÐÝŒz˜!‰}Œ} Ò#Ð#Ð#Ð#Ð#Ð#r   c                 ó6  — t          j        | j        ¦  «        }|j        sJ ‚t	          j        t           j        |j        d¦  «         t	          j        t           j        |j        dg¦  «         t	          j        t           j        |j	        d¦  «         t	          j        t           j        |j
        dg¦  «         t	          j        t           j        |j        dd¦  «         t	          j        t           j        |j        dg¦  «         t	          j        t           j        |j        dd¦  «         t	          j        t           j        |j        dg¦  «         t	          j        t           j        |j        ¦  «         t	          j        t           j        |j        ¦  «         d S )Nr   r   r"   )r   Úfreezer   ÚfrozenÚpytestÚraisesÚNetworkXErrorrˆ   Úadd_nodes_fromÚremove_nodeÚremove_nodes_fromr‹   Úadd_edges_fromÚremove_edgeÚremove_edges_fromÚclear_edgesÚclearr�   s     r   Útest_freezezTestFunction.test_freeze  s*  € ÝŒI�d”fÑÔˆØŒxˆˆˆxÝŒ•bÔ&¨¬
°AÑ6Ô6Ð6ÝŒ•bÔ&¨Ô(8¸1¸#Ñ>Ô>Ð>ÝŒ•bÔ&¨¬°qÑ9Ô9Ð9ÝŒ•bÔ&¨Ô(;¸a¸SÑAÔAÐAÝŒ•bÔ&¨¬
°A°qÑ9Ô9Ð9ÝŒ•bÔ&¨Ô(8¸6¸(ÑCÔCÐCÝŒ•bÔ&¨¬°q¸!Ñ<Ô<Ð<ÝŒ•bÔ&¨Ô(;¸f¸XÑFÔFÐFÝŒ•bÔ&¨¬Ñ6Ô6Ð6ÝŒ•bÔ&¨¬Ñ0Ô0Ð0Ð0Ð0r   c                 óÈ   — t          j        | j        ¦  «        rJ ‚t          j        | j        ¦  «        }|j        t          j        | j        ¦  «        k    sJ ‚|j        sJ ‚d S r   )r   Ú	is_frozenr   rŽ   r�   r�   s     r   Útest_is_frozenzTestFunction.test_is_frozen  sY   € Ý”< ¤Ñ'Ô'Ð'Ð'Ð'ÝŒI�d”fÑÔˆØŒx�2œ<¨¬Ñ/Ô/Ò/Ð/Ð/Ð/ØŒxˆˆˆxˆˆr   c                 óŽ   — t          j        t          j        d¦  «        ¦  «        }|j        d         }d|d<   |d         du sJ ‚d S )Nr   r   TÚnode_attribute)r   rŽ   Ú
path_graphr:   )r/   r   rg   s      r   Ú6test_node_attributes_are_still_mutable_on_frozen_graphzCTestFunction.test_node_attributes_are_still_mutable_on_frozen_graph  sN   € ÝŒI•b”m AÑ&Ô&Ñ'Ô'ˆØŒw�qŒzˆØ!%ˆÐÑØÐ$Ô%¨Ð-Ð-Ð-Ð-Ð-Ð-r   c                 óŽ   — t          j        t          j        d¦  «        ¦  «        }|j        d         }d|d<   |d         du sJ ‚d S )Nr   r   TÚedge_attribute)r   rŽ   r¡   r?   )r/   r   Úedges      r   Ú6test_edge_attributes_are_still_mutable_on_frozen_graphzCTestFunction.test_edge_attributes_are_still_mutable_on_frozen_graph  sN   € ÝŒI•b”m AÑ&Ô&Ñ'Ô'ˆØŒw�vŒˆØ!%ˆÐÑØÐ$Ô%¨Ð-Ð-Ð-Ð-Ð-Ð-r   c                 óÌ  — t          j        d¦  «        }t          j        t	          |¦  «        d¦  «        }t	          t          j        ||d         ¦  «        ¦  «        }t          |¦  «        t          |¦  «        dz
  k    sJ ‚t          j        d¦  «        }t          j        t	          |¦  «        d¦  «        d         }t	          t          j        ||¦  «        ¦  «        }|dk    r|dk    rt          |¦  «        dk    sJ ‚nt          |¦  «        dk    sJ ‚t          j        d¦  «        }t	          t          j        |d¦  «        ¦  «        }t          |¦  «        dk    sJ ‚d S )Néd   r   r   éc   r   )	r   Úcomplete_graphÚrandomÚsampler$   rH   Úlenr¡   Ú
star_graph©r/   r}   ÚpopÚnborsrg   s        r   Útest_neighbors_complete_graphz*TestFunction.test_neighbors_complete_graph#  s+  € ÝÔ! #Ñ&Ô&ˆÝŒm�D ™KœK¨Ñ+Ô+ˆÝ•R”\ %¨¨Q¬Ñ0Ô0Ñ1Ô1ˆå�5‰zŒz�S ™ZœZ¨!™^Ò+Ð+Ð+Ð+å”˜cÑ"Ô"ˆÝŒ}�T %™[œ[¨!Ñ,Ô,¨QÔ/ˆÝ•R”\ %¨Ñ.Ô.Ñ/Ô/ˆà�1Š9ˆ9˜ š˜Ý�u‘:”: ’?�?�?�?�?å�u‘:”: ’?�?�?�?õ ”˜bÑ!Ô!ˆÝ•R”\ %¨Ñ+Ô+Ñ,Ô,ˆÝ�5‰zŒz˜RÒÐÐÐÐÐr   c                 ó  — t          j        d¦  «        }t          j        t	          |¦  «        d¦  «        }t          j        ||d         ¦  «        }t          |¦  «        dk    sJ ‚t          j        d¦  «        }t          j        t	          |¦  «        d¦  «        d         }t          j        ||¦  «        }|dk    r|dk    rt          |¦  «        dk    sJ ‚nt          |¦  «        dk    sJ ‚t          j        d¦  «        }t          j        |d¦  «        }t          |¦  «        dk    sJ ‚t          j	        ¦   «         }| 
                    t          d¦  «        ¦  «         t          j        |d¦  «        }t          |¦  «        dk    sJ ‚d S )	Nr¨   r   r   r©   éa   éb   é
   é	   )r   rª   r«   r¬   r$   Únon_neighborsr­   r¡   r®   r   r“   r%   r¯   s        r   Útest_non_neighborszTestFunction.test_non_neighbors8  sW  € ÝÔ! #Ñ&Ô&ˆÝŒm�D ™KœK¨Ñ+Ô+ˆÝÔ  ¨¨A¬Ñ/Ô/ˆå�5‰zŒz˜QŠˆˆˆå”˜cÑ"Ô"ˆÝŒ}�T %™[œ[¨!Ñ,Ô,¨QÔ/ˆÝÔ  ¨Ñ-Ô-ˆà�1Š9ˆ9˜ š˜Ý�u‘:”: Ò#Ð#Ð#Ð#Ð#å�u‘:”: Ò#Ð#Ð#Ð#õ ”˜bÑ!Ô!ˆÝÔ  ¨Ñ*Ô*ˆÝ�5‰zŒz˜QŠˆˆˆõ ”‘
”
ˆØ×Ò�U 2™YœYÑ'Ô'Ð'ÝÔ  ¨Ñ*Ô*ˆÝ�5‰zŒz˜QŠˆˆˆˆˆr   c                 óŠ  — t          j        d¦  «        }t          t          j        |¦  «        ¦  «        }t	          |¦  «        dk    sJ ‚t          j        d¦  «        }g d¢}t          t          j        |¦  «        ¦  «        }|D ]\  }}||f|v s||f|v sJ ‚Œt          j        d¦  «        }g d¢}t          t          j        |¦  «        ¦  «        }|D ]\  }}||f|v s||f|v sJ ‚Œt          j        ¦   «         }|                     g d¢¦  «         g d¢}t          t          j        |¦  «        ¦  «        }|D ]}||v sJ ‚Œ	d S )Nr   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$   Ú	non_edgesr­   r¡   r®   r(   r–   )r/   r}   ÚnedgesÚexpectedÚuÚvÚes          r   Útest_non_edgeszTestFunction.test_non_edgesS  s‚  € åÔ! !Ñ$Ô$ˆÝ•b”l 5Ñ)Ô)Ñ*Ô*ˆÝ�6‰{Œ{˜aÒÐÐÐå”˜aÑ Ô ˆØ+Ð+Ð+ˆÝ•b”l 5Ñ)Ô)Ñ*Ô*ˆØð 	8ð 	8‰DˆAˆqØ�q�6˜VÐ#Ð#¨¨1 v°Ð'7Ð'7Ð'7Ð7øå”˜aÑ Ô ˆØCÐCÐCˆÝ•b”l 5Ñ)Ô)Ñ*Ô*ˆØð 	8ð 	8‰DˆAˆqØ�q�6˜VÐ#Ð#¨¨1 v°Ð'7Ð'7Ð'7Ð7øõ ”
‘”ˆØ×ÒÐ5Ð5Ð5Ñ6Ô6Ð6Ø+Ð+Ð+ˆÝ•b”l 5Ñ)Ô)Ñ*Ô*ˆØð 	ð 	ˆAØ˜�;�;�;�;�;ð	ð 	r   c                 ó  — t          j        ¦   «         }t          j        |¦  «        rJ ‚t          j        d¦  «        }t          j        |¦  «        rJ ‚t          j        |d¦  «        rJ ‚|                     d¦  «         |                     ddd¬¦  «         t          j        |¦  «        rJ ‚t          j        |d¦  «        sJ ‚t          j        ¦   «         }|                     g d¢¦  «         t          j        |¦  «        sJ ‚t          j        |d¦  «        sJ ‚|                     ¦   «         }t          j        |¦  «        sJ ‚t          j        |d¦  «        sJ ‚t          j
        t           j        t           j        |d¦  «         d S )	Nr   r½   r   rD   r¿   )©Ú0Ú3r   ©rÉ   Ú1éûÿÿÿ)rÌ   rÉ   rÍ   ©rÉ   Ú2r   )rÌ   rÏ   r   ©rÏ   rÊ   r   ©rÌ   rÉ   r"   )r   r   Úis_weightedr¡   rˆ   r‹   r(   Úadd_weighted_edges_fromÚto_undirectedr�   r‘   r’   r�   s     r   Útest_is_weightedzTestFunction.test_is_weightedm  su  € ÝŒH‰JŒJˆÝ”> !Ñ$Ô$Ð$Ð$Ð$åŒM˜!ÑÔˆÝ”> !Ñ$Ô$Ð$Ð$Ð$Ý”> ! VÑ,Ô,Ð,Ð,Ð,à	�
Š
�1‰ŒˆØ	�
Š
�1�a ˆ
Ñ"Ô"Ð"Ý”> !Ñ$Ô$Ð$Ð$Ð$ÝŒ~˜a Ñ(Ô(Ð(Ð(Ð(åŒJ‰LŒLˆØ	×!Ò!ðð ð ñ		
ô 		
ð 		
õ Œ~˜aÑ Ô Ð Ð Ð ÝŒ~˜a Ñ,Ô,Ð,Ð,Ð,à�OŠOÑÔˆÝŒ~˜aÑ Ô Ð Ð Ð ÝŒ~˜a Ñ,Ô,Ð,Ð,Ð,åŒ•bÔ&­¬¸¸6ÑBÔBÐBÐBÐBr   c                 ó’  — t          j        ¦   «         }t          j        |¦  «        rJ ‚|                     d¦  «         |                     g d¢¦  «         t          j        |¦  «        rJ ‚|                     ddd¬¦  «         t          j        |d¦  «        rJ ‚|                     g d¢¦  «         d|d         d	         d
<   t          j        |¦  «        rJ ‚t          j        |d¦  «        rJ ‚d|d         d         d<   t          j        |d¦  «        sJ ‚t          j        |¦  «        sJ ‚t          j        ¦   «         }|                     g d¢¦  «         t          j        |¦  «        sJ ‚t          j        |d¦  «        rJ ‚t          j        |d¦  «        sJ ‚t          j
        t           j        t           j        |d¦  «         d S )Nr   )r   r   r   r   r   r   rD   r"   )r»   r¾   )r   é   Úbluer   Úcolorr»   éþÿÿÿrC   r¾   )rÈ   rË   )rÌ   rÉ   rÚ   rÎ   )rÌ   rÏ   éýÿÿÿrÐ   )rÉ   rÊ   rÑ   r¼   )r   r   Úis_negatively_weightedrˆ   r“   r‹   r–   r(   rÓ   r�   r‘   r’   r�   s     r   Útest_is_negatively_weightedz(TestFunction.test_is_negatively_weightedŽ  sÑ  € ÝŒH‰JŒJˆÝÔ,¨QÑ/Ô/Ð/Ð/Ð/à	�
Š
�1‰ŒˆØ	×Ò˜˜˜Ñ&Ô&Ð&ÝÔ,¨QÑ/Ô/Ð/Ð/Ð/à	�
Š
�1�a ˆ
Ñ"Ô"Ð"ÝÔ,¨Q°Ñ7Ô7Ð7Ð7Ð7à	×ÒÐ1Ð1Ð1Ñ2Ô2Ð2Ø!ˆˆ!ŒˆQŒ�ÑÝÔ,¨QÑ/Ô/Ð/Ð/Ð/ÝÔ,¨Q°Ñ7Ô7Ð7Ð7Ð7àˆˆ!ŒˆQŒ�ÑÝÔ(¨¨FÑ3Ô3Ð3Ð3Ð3ÝÔ(¨Ñ+Ô+Ð+Ð+Ð+åŒJ‰LŒLˆØ	×!Ò!ðð ð ñ		
ô 		
ð 		
õ Ô(¨Ñ+Ô+Ð+Ð+Ð+ÝÔ,¨Q°
Ñ;Ô;Ð;Ð;Ð;ÝÔ(¨¨JÑ7Ô7Ð7Ð7Ð7åŒ•bÔ&­Ô(AÀ1ÀfÑMÔMÐMÐMÐMr   N)Ú__name__Ú
__module__Ú__qualname__r0   r8   r;   rA   rF   rI   rL   rP   rS   rc   rj   ro   rv   ry   r‚   r„   r‰   rŒ   r›   rž   r¢   r¦   r²   r¹   rÆ   rÕ   rÝ   © r   r   r   r      sÉ  € € € € € ð	Hð 	Hð 	Hð@ð @ð @ðEð Eð Eð
ð 
ð 
ð
ð 
ð 
ð Lð Lð LðHð Hð HðHð Hð Hð@ð @ð @ð2ð 2ð 2ð82,ð 2,ð 2,ðh$2ð $2ð $2ðL7ð 7ð 7ð(
ð 
ð 
ð
9ð 
9ð 
9ð>ð >ð >ð$ð $ð $ð$ð $ð $ð1ð 1ð 1ðð ð ð.ð .ð .ð.ð .ð .ð ð  ð  ð*ð ð ð6ð ð ð4Cð Cð CðB#Nð #Nð #Nð #Nð #Nr   r   c                   óN   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	S )
ÚTestCommonNeighborsc                 óv   ‡ — t          t          j        ¦  «        ‰ _        ˆ fd„}t          |¦  «        ‰ _        d S )Nc                 ó`   •— t          ‰                     | ||¦  «        ¦  «        }||k    sJ ‚d S r   )r@   Úfunc)r   rÃ   rÄ   rÂ   ÚresultÚclss        €r   Ú	test_funcz2TestCommonNeighbors.setup_class.<locals>.test_func¹  s7   ø€ Ý˜CŸHšH Q¨¨1Ñ-Ô-Ñ.Ô.ˆFØ˜XÒ%Ð%Ð%Ð%Ð%Ð%r   )Ústaticmethodr   Úcommon_neighborsræ   Útest)rè   ré   s   ` r   Úsetup_classzTestCommonNeighbors.setup_classµ  sC   ø€ å¥Ô 3Ñ4Ô4ˆŒð	&ð 	&ð 	&ð 	&ð 	&õ   	Ñ*Ô*ˆŒˆˆr   c                 ób   — t          j        d¦  «        }|                      |ddg d¢¦  «         d S )Nr   r   r   )r   r   r   ©r   rª   rì   r�   s     r   Útest_K5zTestCommonNeighbors.test_K5¿  s4   € ÝÔ˜aÑ Ô ˆØ�	Š	�!�Q˜˜9˜9˜9Ñ%Ô%Ð%Ð%Ð%r   c                 ó`   — t          j        d¦  «        }|                      |dddg¦  «         d S )Nr   r   r   r   )r   r¡   rì   r�   s     r   Útest_P3zTestCommonNeighbors.test_P3Ã  ó1   € ÝŒM˜!ÑÔˆØ�	Š	�!�Q˜˜A˜3ÑÔÐÐÐr   c                 ó`   — t          j        d¦  «        }|                      |dddg¦  «         d S )Nr   r   r   r   )r   r®   rì   r�   s     r   Útest_S4zTestCommonNeighbors.test_S4Ç  ró   r   c                 óö   — t          j        t          j        ¦  «        5  t          j        ¦   «         }|                     ddg¦  «         |                      |dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r"   r   r   )r�   r‘   r   ÚNetworkXNotImplementedr(   r–   ræ   r�   s     r   Útest_digraphz TestCommonNeighbors.test_digraphË  s³   € ÝŒ]�2Ô4Ñ5Ô5ð 	ð 	Ý”
‘”ˆAØ×Ò˜f fÐ-Ñ.Ô.Ð.Ø�IŠI�a˜˜AÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ŸAA.Á.A2Á5A2c                 ó6  — t          j        d¦  «        }t          j        t           j        t           j        |dd¦  «         t          j        t           j        t           j        |dd¦  «         t          j        t           j        t           j        |dd¦  «         d S )Nr   r   r×   )r   rª   r�   r‘   r’   rë   r�   s     r   Útest_nonexistent_nodesz*TestCommonNeighbors.test_nonexistent_nodesÑ  sr   € ÝÔ˜aÑ Ô ˆÝŒ•bÔ&­Ô(;¸QÀÀ1ÑEÔEÐEÝŒ•bÔ&­Ô(;¸QÀÀ1ÑEÔEÐEÝŒ•bÔ&­Ô(;¸QÀÀ1ÑEÔEÐEÐEÐEr   c                 óŠ   — t          j        ¦   «         }|                     ddg¦  «         |                      |ddg ¦  «         dS )zCase of no common neighbors.r   r   N)r   r   r“   rì   r�   s     r   Útest_custom1z TestCommonNeighbors.test_custom1×  sC   € åŒH‰JŒJˆØ	×Ò˜!˜Q˜Ñ Ô Ð Ø�	Š	�!�Q˜˜2ÑÔÐÐÐr   c                 ób   — t          j        d¦  «        }|                      |ddg d¢¦  «         dS )zCase of equal nodes.r   r   r   Nrï   r�   s     r   Útest_custom2z TestCommonNeighbors.test_custom2Ý  s4   € åÔ˜aÑ Ô ˆØ�	Š	�!�Q˜˜9˜9˜9Ñ%Ô%Ð%Ð%Ð%r   N)rÞ   rß   rà   Úclassmethodrí   rð   rò   rõ   rø   rú   rü   rþ   rá   r   r   rã   rã   ´  s™   € € € € € Øð+ð +ñ „[ð+ð&ð &ð &ð ð  ð  ð ð  ð  ðð ð ðFð Fð Fðð ð ð&ð &ð &ð &ð &r   rã   Ú
graph_typec           
      ó  — t          j        d| ¬¦  «        }d}d}t          j        |||¦  «         |j        d         |         |k    sJ ‚|j        d         |         |k    sJ ‚|j        d         |         |k    sJ ‚t          j        d| ¬¦  «        }t	          t          t          |                     ¦   «         ¦  «        t          t          |¦  «        ¦  «        ¦  «        ¦  «        }d}t          j        |||¦  «         |j        d         |         dk    sJ ‚|j        d         |         dk    sJ ‚|j        d         |         dk    sJ ‚t          j        d| ¬¦  «        }dd	d
œ}t           	                    |                     ¦   «         |¦  «        }| 
                    d¦  «         t          j        ||¦  «         |j        d         i k    sJ ‚|j        d         d         dk    sJ ‚|j        d         d         d	k    sJ ‚d S )Nr   ©Úcreate_usingr¨   Úhellor   r   r   ÚhiéÈ   ©r  r  )r   r¡   Úset_node_attributesr:   ÚdictÚzipr@   r%   r­   r   r°   )r   r   ÚvalsÚattrÚds        r   Útest_set_node_attributesr  ã  s÷  € õ
 	Œ�a jÐ1Ñ1Ô1€AØ€DØ€DÝÔ˜1˜d DÑ)Ô)Ð)ØŒ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#ØŒ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#ØŒ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#õ 	Œ�a jÐ1Ñ1Ô1€AÝ••F˜1Ÿ7š7™9œ9Ñ%Ô%¥u­S°©V¬V¡}¤}Ñ5Ô5Ñ6Ô6€DØ€DÝÔ˜1˜d DÑ)Ô)Ð)ØŒ7�1Œ:�dÔ˜qÒ Ð Ð Ð ØŒ7�1Œ:�dÔ˜qÒ Ð Ð Ð ØŒ7�1Œ:�dÔ˜qÒ Ð Ð Ð õ 	Œ�a jÐ1Ñ1Ô1€AØ˜3ÐÐ€AÝ�=Š=˜Ÿš™œ AÑ&Ô&€DØ‡H‚HˆQ�K„K€KÝÔ˜1˜dÑ#Ô#Ð#ØŒ7�1Œ:˜ÒÐÐÐØŒ7�1Œ:�dÔ˜qÒ Ð Ð Ð ØŒ7�1Œ:�gÔ #Ò%Ð%Ð%Ð%Ð%Ð%r   )Úvaluesr   ÚredrØ   r   rÙ   c                 óÊ   — t          j        ¦   «         }|                     d¦  «         t          j        || |¦  «         |j        d         d         dk    sJ ‚d|j        vsJ ‚dS )z…
    When `values` is a dict or dict-of-dict keyed by nodes, ensure that keys
    that correspond to nodes not in G are ignored.
    r   rÙ   r  r   N)r   r   rˆ   r  r:   ©r  r   r   s      r   Ú,test_set_node_attributes_ignores_extra_nodesr    sh   € õ 	Œ‰
Œ
€AØ‡J‚Jˆq�M„M€MÝÔ˜1˜f dÑ+Ô+Ð+ØŒ7�1Œ:�gÔ %Ò'Ð'Ð'Ð'Ø�A”GÐÐÐÐÐÐr   c           
      ó4  — t          j        d| ¬¦  «        }d}d}t          j        |||¦  «         |d         d         |         |k    sJ ‚|d         d         |         |k    sJ ‚t          j        d| ¬¦  «        }d}dd	g}t          t	          |t          t          |¦  «        ¦  «        ¦  «        ¦  «        }t          j        |||¦  «         |d         d         |         dk    sJ ‚|d         d         |         dk    sJ ‚t          j        d| ¬¦  «        }dd
dœ}dg}t                               ||¦  «        }t          j        ||¦  «         |d         d         d         dk    sJ ‚|d         d         d         d
k    sJ ‚|d         d         i k    sJ ‚d S )Nr   r  r  r   r   r   r  r   r"   r  r  ©r   r¡   Úset_edge_attributesr	  r
  r%   r­   r   ©r   r   r  r  r?   r  s         r   Útest_set_edge_attributesr    s®  € õ 	Œ�a jÐ1Ñ1Ô1€AØ€DØ€DÝÔ˜1˜d DÑ)Ô)Ð)ØˆQŒ4�Œ7�4Œ=˜DÒ Ð Ð Ð ØˆQŒ4�Œ7�4Œ=˜DÒ Ð Ð Ð õ 	Œ�a jÐ1Ñ1Ô1€AØ€DØ�VÐ€EÝ•�E�5¥ U¡¤Ñ,Ô,Ñ-Ô-Ñ.Ô.€DÝÔ˜1˜d DÑ)Ô)Ð)ØˆQŒ4�Œ7�4Œ=˜AÒÐÐÐØˆQŒ4�Œ7�4Œ=˜AÒÐÐÐõ 	Œ�a jÐ1Ñ1Ô1€AØ˜3ÐÐ€AØˆH€EÝ�=Š=˜ Ñ"Ô"€DÝÔ˜1˜dÑ#Ô#Ð#ØˆQŒ4�Œ7�4Œ=˜AÒÐÐÐØˆQŒ4�Œ7�7Ô˜sÒ"Ð"Ð"Ð"ØˆQŒ4�Œ7�bŠ=ˆ=ˆ=ˆ=ˆ=ˆ=r   rl   r\   )r   r   rC   c                 ó¦   — t          j        dg¦  «        }t          j        || |¦  «         |d         d         d         dk    sJ ‚d|j        vsJ ‚dS )ú†If `values` is a dict or dict-of-dicts containing edges that are not in
    G, data associate with these edges should be ignored.
    r   r   r   rC   rl   r   N)r   r   r  r?   r  s      r   Ú,test_set_edge_attributes_ignores_extra_edgesr  5  sa   € õ 	Œ�&�ÑÔ€AÝÔ˜1˜f dÑ+Ô+Ð+ØˆQŒ4�Œ7�8Ô Ò#Ð#Ð#Ð#Ø˜œÐ Ð Ð Ð Ð Ð r   c           
      óˆ  — t          j        d| ¬¦  «        }d}d}t          j        |||¦  «         |d         d         d         |         |k    sJ ‚|d         d         d         |         |k    sJ ‚t          j        d| ¬¦  «        }d}dd	g}t          t	          |t          t          |¦  «        ¦  «        ¦  «        ¦  «        }t          j        |||¦  «         |d         d         d         |         dk    sJ ‚|d         d         d         |         dk    sJ ‚t          j        d| ¬¦  «        }dd
dœ}dg}t                               ||¦  «        }t          j        ||¦  «         |d         d         d         d         dk    sJ ‚|d         d         d         d         d
k    sJ ‚|d         d         d         i k    sJ ‚d S )Nr   r  r  r   r   r   r  ©r   r   r   r   r  r  r  r  s         r   Útest_set_edge_attributes_multir  F  sÕ  € õ 	Œ�a jÐ1Ñ1Ô1€AØ€DØ€DÝÔ˜1˜d DÑ)Ô)Ð)ØˆQŒ4�Œ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#ØˆQŒ4�Œ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#õ 	Œ�a jÐ1Ñ1Ô1€AØ€DØ˜	Ð"€EÝ•�E�5¥ U¡¤Ñ,Ô,Ñ-Ô-Ñ.Ô.€DÝÔ˜1˜d DÑ)Ô)Ð)ØˆQŒ4�Œ7�1Œ:�dÔ˜qÒ Ð Ð Ð ØˆQŒ4�Œ7�1Œ:�dÔ˜qÒ Ð Ð Ð õ 	Œ�a jÐ1Ñ1Ô1€AØ˜3ÐÐ€AØˆK€EÝ�=Š=˜ Ñ"Ô"€DÝÔ˜1˜dÑ#Ô#Ð#ØˆQŒ4�Œ7�1Œ:�dÔ˜qÒ Ð Ð Ð ØˆQŒ4�Œ7�1Œ:�gÔ #Ò%Ð%Ð%Ð%ØˆQŒ4�Œ7�1Œ:˜ÒÐÐÐÐÐr   )r  ©r   r   r   c                 ó  — t          j        ddg¦  «        }t          j        || |¦  «         |d         d         d         d         dk    sJ ‚|d         d         d         i k    sJ ‚d|                     ¦   «         vsJ ‚dS )	r  r  ©r   r   r   r   r   rC   rl   r   N)r   Ú
MultiGraphr  r?   r  s      r   Ú2test_set_edge_attributes_multi_ignores_extra_edgesr#  d  s‹   € õ 	Œ�y )Ð,Ñ-Ô-€AÝÔ˜1˜f dÑ+Ô+Ð+ØˆQŒ4�Œ7�1Œ:�hÔ 3Ò&Ð&Ð&Ð&ØˆQŒ4�Œ7�1Œ:˜ÒÐÐÐØ˜Ÿš™œÐ"Ð"Ð"Ð"Ð"Ð"r   c                  óú  — t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         g} | D ]­}t          j        d|¬¦  «        }d}d}t          j        |||¦  «         t          j        ||¦  «        }|d         |k    sJ ‚|d         |k    sJ ‚|d         |k    sJ ‚d}|                     d¦  «         t          j        |||¬	¦  «        }|d         |k    sJ ‚Œ®d S )
Nr   r  r  r¨   r   r   r   r   ©Údefault)	r   r   r(   r"  ÚMultiDiGraphr¡   r  Úget_node_attributesrˆ   )Úgraphsr   r  r  ÚattrsÚdefault_vals         r   Útest_get_node_attributesr,  v  s
  € ÝŒh‰jŒj�"œ*™,œ,­¬©¬½¼Ñ9JÔ9JÐK€FØð 'ð 'ˆÝŒM˜!¨!Ð,Ñ,Ô,ˆØˆØˆÝ
Ô˜q $¨Ñ-Ô-Ð-ÝÔ& q¨$Ñ/Ô/ˆØ�QŒx˜4ÒÐÐÐØ�QŒx˜4ÒÐÐÐØ�QŒx˜4ÒÐÐÐØˆØ	�
Š
�1‰ŒˆÝÔ& q¨$¸ÐDÑDÔDˆØ�QŒx˜;Ò&Ð&Ð&Ð&Ð&ð'ð 'r   c                  ó@  — t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         g} | D ]Ð}t          j        d|¬¦  «        }d}d}t          j        |||¦  «         t          j        ||¦  «        }t          |¦  «        dk    sJ ‚|j	        D ]}||         |k    sJ ‚Œ|}| 
                    dd¦  «         t          j        |||¬¦  «        }t          |¦  «        dk    sJ ‚|j	        D ]}||         |k    sJ ‚ŒŒÑd S )	Nr   r  r  r¨   r   r   r   r%  )r   r   r(   r"  r'  r¡   r  Úget_edge_attributesr­   r?   r‹   )r)  r   r  r  r*  r¥   r+  Údeafult_attrss           r   Útest_get_edge_attributesr0  ‡  s<  € ÝŒh‰jŒj�"œ*™,œ,­¬©¬½¼Ñ9JÔ9JÐK€FØð /ð /ˆÝŒM˜!¨!Ð,Ñ,Ô,ˆØˆØˆÝ
Ô˜q $¨Ñ-Ô-Ð-ÝÔ& q¨$Ñ/Ô/ˆÝ�5‰zŒz˜QŠˆˆˆà”Gð 	'ð 	'ˆDØ˜”; $Ò&Ð&Ð&Ð&Ð&àˆØ	�
Š
�1�aÑÔÐÝÔ.¨q°$ÀÐLÑLÔLˆÝ�=Ñ!Ô! QÒ&Ð&Ð&Ð&à”Gð 	/ð 	/ˆDØ  Ô&¨$Ò.Ð.Ð.Ð.Ð.ð	/ð!/ð /r   c           	      óÚ	  ‡‡‡‡‡‡— t          j        d| ¬¦  «        }dŠdŠt          j        |‰‰¦  «         t          j        |‰¦  «         ‰|j        d         vsJ ‚‰|j        d         vsJ ‚‰|j        d         vsJ ‚t          j        d| ¬¦  «        }dŠd	Št          j        |‰‰¦  «         t          j        |‰‰¦  «         t          j        |‰¦  «         ‰|j        d         vsJ ‚|j        d         ‰         ‰k    sJ ‚‰|j        d         vsJ ‚|j        d         ‰         ‰k    sJ ‚‰|j        d         vsJ ‚|j        d         ‰         ‰k    sJ ‚t          j        d| ¬¦  «        }t          j        |‰‰¦  «         t          j        |‰‰¦  «         t          j        |‰‰¦  «         ‰|j        d         vr‰|j        d         vsJ ‚‰|j        d         vr‰|j        d         vsJ ‚‰|j        d         vr‰|j        d         vsJ ‚t          j        d| ¬¦  «        }d
ŠdŠt          j        |ˆˆˆˆˆˆfd„|                     ¦   «         D ¦   «         ¦  «         t          j        |‰‰¦  «         ‰|j        d         vr‰|j        d         vsJ ‚‰|j        d         vr‰|j        d         vsJ ‚‰|j        d         vr‰|j        d         vsJ ‚|j        d         ‰         ‰k    sJ ‚|j        d         ‰         ‰k    sJ ‚|j        d         ‰         ‰k    sJ ‚t          j        d| ¬¦  «        }t          j        |‰‰‰‰i‰‰‰‰idœ¦  «         t          j        |‰¦  «         ‰|j        d         vsJ ‚‰|j        d         vsJ ‚‰|j        d         vsJ ‚|j        d         ‰         ‰k    sJ ‚|j        d         ‰         ‰k    sJ ‚t          j        d| ¬¦  «        }t          j        |ˆˆˆˆˆˆfd„|                     ¦   «         D ¦   «         ¦  «         t          j        |‰‰ddg¬¦  «         ‰|j        d         vr‰|j        d         vsJ ‚‰|j        d         vr‰|j        d         vsJ ‚‰|j        d         v r‰|j        d         v sJ ‚‰|j        d         v r|j        d         ‰         ‰k    sJ ‚‰|j        d         v r|j        d         ‰         ‰k    sJ ‚d S )Nr   r  r¨   r  r   r   r   r  Úotheré,  Úthreec           	      ó"   •— i | ]}|‰‰‰‰‰‰i“ŒS rá   rá   ©Ú.0Únr  Ú
other_attrÚ
other_valsÚ
third_attrÚ
third_valsr  s     €€€€€€r   ú
<dictcomp>z/test_remove_node_attributes.<locals>.<dictcomp>È  ó8   ø€ ð 	
ð 	
ð 	
àð ��d˜J¨
°JÀ
ÐKð	
ð 	
ð 	
r   r"   c           	      ó"   •— i | ]}|‰‰‰‰‰‰i“ŒS rá   rá   r6  s     €€€€€€r   r=  z/test_remove_node_attributes.<locals>.<dictcomp>é  r>  r   r=   )r   r¡   r  Úremove_node_attributesr:   ©r   r   r  r9  r:  r;  r<  r  s     @@@@@@r   Útest_remove_node_attributesrB  �  sþ  øøøøøø€ õ
 	Œ�a jÐ1Ñ1Ô1€AØ€DØ€DÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜a Ñ&Ô&Ð&Ø�q”w˜q”zÐ!Ð!Ð!Ð!Ø�q”w˜q”zÐ!Ð!Ð!Ð!Ø�q”w˜q”zÐ!Ð!Ð!Ð!õ 	Œ�a jÐ1Ñ1Ô1€AØ€JØ€JÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜1˜j¨*Ñ5Ô5Ð5ÝÔ˜a Ñ&Ô&Ð&Ø�q”w˜q”zÐ!Ð!Ð!Ð!ØŒ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/Ø�q”w˜q”zÐ!Ð!Ð!Ð!ØŒ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/Ø�q”w˜q”zÐ!Ð!Ð!Ð!ØŒ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/õ 	Œ�a jÐ1Ñ1Ô1€AÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜1˜j¨*Ñ5Ô5Ð5ÝÔ˜a  zÑ2Ô2Ð2Ø�q”w˜q”zÐ!Ð! j¸¼À¼
Ð&BÐ&BÐ&BÐBØ�q”w˜q”zÐ!Ð! j¸¼À¼
Ð&BÐ&BÐ&BÐBØ�q”w˜q”zÐ!Ð! j¸¼À¼
Ð&BÐ&BÐ&BÐBõ 	Œ�a jÐ1Ñ1Ô1€AØ€JØ€JÝÔØ	ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
à—W’W‘Y”Yð	
ñ 	
ô 	
ñô ð õ Ô˜a ¨ZÑ8Ô8Ð8Ø˜QœW QœZÐ'Ð'¨J¸a¼gÀa¼jÐ,HÐ,HÐ,HÐHØ˜QœW QœZÐ'Ð'¨J¸a¼gÀa¼jÐ,HÐ,HÐ,HÐHØ˜QœW QœZÐ'Ð'¨J¸a¼gÀa¼jÐ,HÐ,HÐ,HÐHØŒ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#ØŒ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#ØŒ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#õ 	Œ�a jÐ1Ñ1Ô1€AÝÔØ	à�d˜J¨
Ð3Ø�d˜J¨
Ð3ð	
ð 	
ñô ð õ Ô˜a Ñ&Ô&Ð&Ø�q”w˜q”zÐ!Ð!Ð!Ð!Ø�q”w˜q”zÐ!Ð!Ð!Ð!Ø�q”w˜q”zÐ!Ð!Ð!Ð!ØŒ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/ØŒ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/õ 	Œ�a jÐ1Ñ1Ô1€AÝÔØ	ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
à—W’W‘Y”Yð	
ñ 	
ô 	
ñô ð õ Ô˜a  z¸1¸a¸&ÐAÑAÔAÐAØ�q”w˜q”zÐ!Ð! j¸¼À¼
Ð&BÐ&BÐ&BÐBØ�q”w˜q”zÐ!Ð! j¸¼À¼
Ð&BÐ&BÐ&BÐBØ�1”7˜1”:ÐÐ *°´¸´
Ð":Ð":Ð":Ð:Ø˜œ œÐ#Ð#¨¬°¬
°:Ô(>À*Ò(LÐ(LÐ(LÐLØ˜œ œÐ#Ð#¨¬°¬
°:Ô(>À*Ò(LÐ(LÐ(LÐLÐ(LÐ(Lr   c           	      ó¤  ‡‡‡‡‡‡— t          j        d| ¬¦  «        }dŠdŠt          j        |‰‰¦  «         t          j        |‰¦  «         t	          t          j        |‰¦  «        ¦  «        dk    sJ ‚t          j        d| ¬¦  «        }dŠdŠt          j        |‰‰¦  «         t          j        |‰‰¦  «         t          j        |‰¦  «         ‰|d         d         vsJ ‚‰|d         d	         vsJ ‚|d         d         ‰         dk    sJ ‚|d         d	         ‰         dk    sJ ‚t          j        d| ¬¦  «        }t          j        |‰‰¦  «         t          j        |‰‰¦  «         t          j        |‰‰¦  «         ‰|d         d         vr‰|d         d         vsJ ‚‰|d         d	         vr‰|d         d	         vsJ ‚t          j        d| ¬¦  «        }d
ŠdŠt          j        |ˆˆˆˆˆˆfd„|                     ¦   «         D ¦   «         ¦  «         t          j        |‰‰¦  «         ‰|d         d         vr‰|d         d         vsJ ‚‰|d         d	         vr‰|d         d	         vsJ ‚|d         d         ‰         ‰k    sJ ‚|d         d	         ‰         ‰k    sJ ‚t          j        d| ¬¦  «        }t          j        |d‰‰‰‰ii¦  «         t          j        |‰¦  «         ‰|d         d         vr|d         d         ‰         ‰k    sJ ‚‰|d         d	         vsJ ‚t          j        d| ¬¦  «        }t          j        |ˆˆˆˆˆˆfd„|                     ¦   «         D ¦   «         ¦  «         t          j        |‰‰dg¬¦  «         ‰|d         d         vr‰|d         d         vsJ ‚‰|d         d	         v r‰|d         d	         v sJ ‚d S )Nr   r  r  r¨   r   r2  r  r   r   Úthirdr3  c           	      ó,   •— i | ]\  }}||f‰‰‰‰‰‰i“ŒS rá   rá   ©	r7  rÃ   rÄ   r  r9  r:  r;  r<  r  s	      €€€€€€r   r=  z/test_remove_edge_attributes.<locals>.<dictcomp>  ó@   ø€ ð 	
ð 	
ð 	
á��1ð �ˆF�T˜4 ¨Z¸ÀZÐPð	
ð 	
ð 	
r   r   c           	      ó,   •— i | ]\  }}||f‰‰‰‰‰‰i“ŒS rá   rá   rF  s	      €€€€€€r   r=  z/test_remove_edge_attributes.<locals>.<dictcomp>1  rG  r   ©Úebunch)r   r¡   r  Úremove_edge_attributesr­   r.  r?   rA  s     @@@@@@r   Útest_remove_edge_attributesrL  ö  s“  øøøøøø€ õ 	Œ�a jÐ1Ñ1Ô1€AØ€DØ€DÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜a Ñ&Ô&Ð&Ý�rÔ% a¨Ñ.Ô.Ñ/Ô/°1Ò4Ð4Ð4Ð4õ 	Œ�a jÐ1Ñ1Ô1€AØ€JØ€JÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜1˜j¨*Ñ5Ô5Ð5ÝÔ˜a Ñ&Ô&Ð&à�q˜”t˜A”wÐÐÐÐØ�q˜”t˜A”wÐÐÐÐØˆQŒ4�Œ7�:Ô #Ò%Ð%Ð%Ð%ØˆQŒ4�Œ7�:Ô #Ò%Ð%Ð%Ð%õ 	Œ�a jÐ1Ñ1Ô1€AÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜1˜j¨*Ñ5Ô5Ð5ÝÔ˜a  zÑ2Ô2Ð2Ø�q˜”t˜A”wÐÐ :°Q°q´T¸!´WÐ#<Ð#<Ð#<Ð<Ø�q˜”t˜A”wÐÐ :°Q°q´T¸!´WÐ#<Ð#<Ð#<Ð<õ 	Œ�a jÐ1Ñ1Ô1€AØ€JØ€JÝÔØ	ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
àŸš™	œ	ð	
ñ 	
ô 	
ñô ð õ Ô˜a ¨ZÑ8Ô8Ð8Ø˜Q˜qœT !œWÐ$Ð$¨¸1¸Q¼4À¼7Ð)BÐ)BÐ)BÐBØ˜Q˜qœT !œWÐ$Ð$¨¸1¸Q¼4À¼7Ð)BÐ)BÐ)BÐBØˆQŒ4�Œ7�4Œ=˜DÒ Ð Ð Ð ØˆQŒ4�Œ7�4Œ=˜DÒ Ð Ð Ð õ 	Œ�a jÐ1Ñ1Ô1€AÝÔ˜1˜v¨¨d°JÀ
Ð'KÐLÑMÔMÐMÝÔ˜a Ñ,Ô,Ð,Ø˜Q˜qœT !œWÐ$Ð$¨¨1¬¨a¬°¬¸$Ò)>Ð)>Ð)>Ð>Ø˜Q˜qœT !œWÐ$Ð$Ð$Ð$õ 	Œ�a jÐ1Ñ1Ô1€AÝÔØ	ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
àŸš™	œ	ð	
ñ 	
ô 	
ñô ð õ Ô˜a ¨ZÀÀÐIÑIÔIÐIØ˜Q˜qœT !œWÐ$Ð$¨¸1¸Q¼4À¼7Ð)BÐ)BÐ)BÐBØ˜˜1œ˜aœÐ Ð  Z°1°Q´4¸´7Ð%:Ð%:Ð%:Ð:Ð%:Ð%:r   c           	      óÄ  ‡‡‡‡‡‡— t          j        d| ¬¦  «        }|                     dd¦  «         dŠdŠt          j        |‰‰¦  «         t          j        |‰¦  «         ‰|d         d         d         vsJ ‚‰|d         d         d         vsJ ‚‰|d         d         d         vsJ ‚t          j        d| ¬¦  «        }|                     dd¦  «         dŠd	Št          j        |‰‰¦  «         t          j        |‰‰¦  «         t          j        |‰¦  «         ‰|d         d         d         vsJ ‚‰|d         d         d         vsJ ‚‰|d         d         d         vsJ ‚|d         d         d         ‰         ‰k    sJ ‚|d         d         d         ‰         ‰k    sJ ‚|d         d         d         ‰         ‰k    sJ ‚t          j        d| ¬¦  «        }|                     dd¦  «         t          j        |‰‰¦  «         t          j        |‰‰¦  «         t          j        |‰‰¦  «         ‰|d         d         d         vr‰|d         d         d         vsJ ‚‰|d         d         d         vr‰|d         d         d         vsJ ‚‰|d         d         d         vr‰|d         d         d         vsJ ‚t          j        d| ¬¦  «        }|                     dd¦  «         d
ŠdŠt          j        |ˆˆˆˆˆˆfd„|                     d¬¦  «        D ¦   «         ¦  «         t          j        |‰‰¦  «         ‰|d         d         d         vr‰|d         d         d         vsJ ‚‰|d         d         d         vr‰|d         d         d         vsJ ‚‰|d         d         d         vr‰|d         d         d         vsJ ‚|d         d         d         ‰         ‰k    sJ ‚|d         d         d         ‰         ‰k    sJ ‚|d         d         d         ‰         ‰k    sJ ‚t          j        d| ¬¦  «        }|                     dd¦  «         t          j        |‰‰‰‰i‰‰‰‰idœ¦  «         t          j        |‰¦  «         ‰|d         d         d         vr|d         d         d         ‰         ‰k    sJ ‚‰|d         d         d         vsJ ‚‰|d         d         d         vsJ ‚t          j        d| ¬¦  «        }|                     dd¦  «         t          j        |‰‰‰‰i‰‰‰‰i‰‰‰‰idœ¦  «         t          j        |‰ddg¬¦  «         ‰|d         d         d         vr‰|d         d         d         v sJ ‚‰|d         d         d         vr‰|d         d         d         v sJ ‚‰|d         d         d         v r‰|d         d         d         v sJ ‚d S )Nr   r  r   r   r  r¨   r   r2  r  rD  r3  c           	      ó0   •— i | ]\  }}}|||f‰‰	‰‰‰‰i“ŒS rá   rá   )
r7  rÃ   rÄ   Úkr  r9  r:  r;  r<  r  s
       €€€€€€r   r=  z5test_remove_multi_edge_attributes.<locals>.<dictcomp>h  sD   ø€ ð 	
ð 	
ð 	
á��1�að ��1ˆI˜˜d J°
¸JÈ
ÐSð	
ð 	
ð 	
r   T©Úkeys)r  ©r   r   r   )r  r   rR  r  r   rI  )r   r¡   r‹   r  rK  r?   rA  s     @@@@@@r   Ú!test_remove_multi_edge_attributesrS  ;  s³  øøøøøø€ õ 	Œ�a jÐ1Ñ1Ô1€AØ‡J‚Jˆq�!ÑÔÐØ€DØ€DÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜a Ñ&Ô&Ð&Ø�q˜”t˜A”w˜q”zÐ!Ð!Ð!Ð!Ø�q˜”t˜A”w˜q”zÐ!Ð!Ð!Ð!Ø�q˜”t˜A”w˜q”zÐ!Ð!Ð!Ð!õ 	Œ�a jÐ1Ñ1Ô1€AØ‡J‚Jˆq�!ÑÔÐØ€JØ€JÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜1˜j¨*Ñ5Ô5Ð5ÝÔ˜a Ñ&Ô&Ð&Ø�q˜”t˜A”w˜q”zÐ!Ð!Ð!Ð!Ø�q˜”t˜A”w˜q”zÐ!Ð!Ð!Ð!Ø�q˜”t˜A”w˜q”zÐ!Ð!Ð!Ð!ØˆQŒ4�Œ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/ØˆQŒ4�Œ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/ØˆQŒ4�Œ7�1Œ:�jÔ! ZÒ/Ð/Ð/Ð/õ 	Œ�a jÐ1Ñ1Ô1€AØ‡J‚Jˆq�!ÑÔÐÝÔ˜1˜d DÑ)Ô)Ð)ÝÔ˜1˜j¨*Ñ5Ô5Ð5ÝÔ˜a  zÑ2Ô2Ð2Ø�q˜”t˜A”w˜q”zÐ!Ð! j¸¸!¼¸Q¼À¼
Ð&BÐ&BÐ&BÐBØ�q˜”t˜A”w˜q”zÐ!Ð! j¸¸!¼¸Q¼À¼
Ð&BÐ&BÐ&BÐBØ�q˜”t˜A”w˜q”zÐ!Ð! j¸¸!¼¸Q¼À¼
Ð&BÐ&BÐ&BÐBõ 	Œ�a jÐ1Ñ1Ô1€AØ‡J‚Jˆq�!ÑÔÐØ€JØ€JÝÔØ	ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
àŸ7š7¨˜7Ñ-Ô-ð	
ñ 	
ô 	
ñô ð õ Ô˜a ¨ZÑ8Ô8Ð8Ø˜Q˜qœT !œW QœZÐ'Ð'¨J¸aÀ¼dÀ1¼gÀa¼jÐ,HÐ,HÐ,HÐHØ˜Q˜qœT !œW QœZÐ'Ð'¨J¸aÀ¼dÀ1¼gÀa¼jÐ,HÐ,HÐ,HÐHØ˜Q˜qœT !œW QœZÐ'Ð'¨J¸aÀ¼dÀ1¼gÀa¼jÐ,HÐ,HÐ,HÐHØˆQŒ4�Œ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#ØˆQŒ4�Œ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#ØˆQŒ4�Œ7�1Œ:�dÔ˜tÒ#Ð#Ð#Ð#õ 	Œ�a jÐ1Ñ1Ô1€AØ‡J‚Jˆq�!ÑÔÐÝÔØ	à˜d J°
Ð;Ø˜d J°
Ð;ð	
ð 	
ñô ð õ Ô˜a Ñ,Ô,Ð,Ø˜Q˜qœT !œW QœZÐ'Ð'¨A¨a¬D°¬G°A¬J°tÔ,<ÀÒ,DÐ,DÐ,DÐDØ˜Q˜qœT !œW QœZÐ'Ð'Ð'Ð'Ø˜Q˜qœT !œW QœZÐ'Ð'Ð'Ð'õ 	Œ�a jÐ1Ñ1Ô1€AØ‡J‚Jˆq�!ÑÔÐÝÔØ	à˜d J°
Ð;Ø˜d J°
Ð;Ø˜d J°
Ð;ð	
ð 	
ñô ð õ Ô˜a ¨y¸)Ð.DÐEÑEÔEÐEØ�q˜”t˜A”w˜q”zÐ!Ð! j°A°a´D¸´G¸A´JÐ&>Ð&>Ð&>Ð>Ø�q˜”t˜A”w˜q”zÐ!Ð! j°A°a´D¸´G¸A´JÐ&>Ð&>Ð&>Ð>Ø�1�Q”4˜”7˜1”:ÐÐ *°°!´°Q´¸´
Ð":Ð":Ð":Ð:Ð":Ð":r   c                  óš  — t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         g} | D ]}}t          j        |¦  «        sJ ‚|                     t          d¦  «        ¦  «         t          j        |¦  «        sJ ‚|                     ddg¦  «         t          j        |¦  «        rJ ‚Œ~d S )Nr   r"   r¿   )	r   r   r(   r"  r'  Úis_emptyr“   r%   r–   )r)  r   s     r   Útest_is_emptyrV  •  s³   € ÝŒh‰jŒj�"œ*™,œ,­¬©¬½¼Ñ9JÔ9JÐK€FØð "ð "ˆÝŒ{˜1‰~Œ~ÐÐˆ~Ø	×Ò�˜q™œÑ"Ô"Ð"ÝŒ{˜1‰~Œ~ÐÐˆ~Ø	×Ò˜& &Ð)Ñ*Ô*Ð*Ý”;˜q‘>”>Ð!Ð!Ð!Ð!ð"ð "r   c                 óz  — t          j        d| ¬¦  «        }|                     dd¦  «         t          t          j        |¦  «        dg¦  «        sJ ‚t          t          j        |¦  «        dg¦  «        sJ ‚t          t          j        |d¬¦  «        ddi fg¦  «        sJ ‚t          j        |¦  «        dk    sJ ‚d S )Nr   r  r   ©r   r   Tr]   r   )r   rª   r‹   r   Únodes_with_selfloopsr   Úselfloop_edgesÚnumber_of_selfloops©r   r   s     r   Útest_selfloopsr]  Ÿ  sÃ   € õ 	Ô˜!¨*Ð5Ñ5Ô5€AØ‡J‚Jˆq�!ÑÔÐÝ•rÔ.¨qÑ1Ô1°A°3Ñ7Ô7Ð7Ð7Ð7Ý•rÔ(¨Ñ+Ô+¨f¨XÑ6Ô6Ð6Ð6Ð6Ý•rÔ(¨°Ð6Ñ6Ô6¸!¸QÀ¸¸ÑEÔEÐEÐEÐEÝÔ! !Ñ$Ô$¨Ò)Ð)Ð)Ð)Ð)Ð)r   c                 ó>  — t          j        d| ¬¦  «        }|                     dd¦  «         |                     ddd¬¦  «         t          t          j        |d¬¦  «        ddi fddd	difg¦  «        sJ ‚t          t          j        |d	¬¦  «        d
dg¦  «        sJ ‚d S )Nr   r  r   r   r   rD   Tr]   rC   )r   r   N)r   r   r   )r   rª   r‹   r   rZ  r\  s     r   Útest_selfloop_edges_attrr_  «  s¿   € õ 	Ô˜!¨*Ð5Ñ5Ô5€AØ‡J‚Jˆq�!ÑÔÐØ‡J‚Jˆq�!˜A€JÑÔÐÝÝ
Ô˜! $Ð'Ñ'Ô'¨1¨a°¨*°q¸!¸hÈ¸]Ð6KÐ)Lñô ð ð ð õ •rÔ(¨°Ð:Ñ:Ô:¸\È9Ð<UÑVÔVÐVÐVÐVÐVÐVr   c                  óø   — t          j        dt           j        ¬¦  «        } |                      ddd¬¦  «         |                      ddd¬¦  «         t	          t          j        | dd¬	¦  «        d
dg¦  «        sJ ‚d S )Nr   r  r   r¶   rD   r¨   rC   T©r^   rQ  )r   r   r   r¶   )r   r   r   r¨   )r   rª   r"  r‹   r   rZ  r
   s    r   Ú,test_selfloop_edges_multi_with_data_and_keysrb  ¸  s‹   € Ý
Ô˜!­"¬-Ð8Ñ8Ô8€AØ‡J‚Jˆq�!˜B€JÑÔÐØ‡J‚Jˆq�!˜C€JÑ Ô Ð ÝÝ
Ô˜! (°Ð6Ñ6Ô6¸ÈÐ8Wñô ð ð ð ð ð r   c                 ó®  — t          j        d| ¬¦  «        }|                     dd¦  «         |                     t          j        |d¬¦  «        ¦  «         |                     dd¦  «         |                     t          j        |d¬¦  «        ¦  «         |                     dd¦  «         |                     t          j        |dd¬¦  «        ¦  «         d S )Nr   r  r   TrP  r]   )rQ  r^   )r   rª   r‹   r˜   rZ  r\  s     r   Útest_selfloops_removalrd  Á  sÇ   € å
Ô˜!¨*Ð5Ñ5Ô5€AØ‡J‚Jˆq�!ÑÔÐØ×Ò�Ô)¨!°$Ð7Ñ7Ô7Ñ8Ô8Ð8Ø‡J‚Jˆq�!ÑÔÐØ×Ò�Ô)¨!°$Ð7Ñ7Ô7Ñ8Ô8Ð8Ø‡J‚Jˆq�!ÑÔÐØ×Ò�Ô)¨!°$¸TÐBÑBÔBÑCÔCÐCÐCÐCr   c                 ó0  — t          j        d| ¬¦  «        }|                     dd¦  «         |                     dd¦  «         |                     t          j        |¦  «        ¦  «         d|                     ¦   «         vsJ ‚|                     dd¦  «         |                     dd¦  «         t          j        t          ¦  «        5  |                     t          j        |d¬¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   |                     dd¦  «         |                     dd¦  «         t          j        t          ¦  «        5  |                     t          j        |d¬¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   |                     dd¦  «         |                     dd¦  «         t          j        t          ¦  «        5  |                     t          j        |dd¬	¦  «        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )
z[test removing selfloops behavior vis-a-vis altering a dict while iterating.
    cf. gh-4068r   r  r   rX  TrP  Nr]   ra  )
r   rª   r‹   r˜   rZ  r?   r�   r‘   ÚRuntimeErrorÚ	TypeErrorr\  s     r   Útest_selfloops_removal_multirh  Ì  sµ  € õ 	Ô˜!¨*Ð5Ñ5Ô5€Aà‡J‚Jˆq�!ÑÔÐØ‡J‚Jˆq�!ÑÔÐØ×Ò�Ô)¨!Ñ,Ô,Ñ-Ô-Ð-Ø˜Ÿš™œÐ"Ð"Ð"Ð"à‡J‚Jˆq�!ÑÔÐØ‡J‚Jˆq�!ÑÔÐÝ	Œ•|Ñ	$Ô	$ð =ð =Ø	×Ò�BÔ-¨a°dÐ;Ñ;Ô;Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð ‡J‚Jˆq�!ÑÔÐØ‡J‚Jˆq�!ÑÔÐÝ	Œ•yÑ	!Ô	!ð =ð =Ø	×Ò�BÔ-¨a°dÐ;Ñ;Ô;Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð ‡J‚Jˆq�!ÑÔÐØ‡J‚Jˆq�!ÑÔÐÝ	Œ•|Ñ	$Ô	$ð Hð HØ	×Ò�BÔ-¨a°dÀÐFÑFÔFÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs6   Ã*C=Ã=DÄDÅ*FÆFÆ
FÇ+HÈHÈHc                  óÔ  — g d¢} g d¢}t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         g}dddddœfdddd	dœfdddddœfg}|D ]{}|                     |¦  «         t          j        || d
¦  «        d	k    sJ ‚t          j        || d¦  «        dk    sJ ‚t          j        t           j	        t           j        ||d
¦  «         Œ|d S )Nr   )r   r   r   r   r   r   r×   )ÚcostÚdistr   r   rj  rk  )
r   r   r(   r"  r'  r–   Úpath_weightr�   r‘   ÚNetworkXNoPath)Ú
valid_pathÚinvalid_pathr)  r?   r}   s        r   Útest_pathweightrp  ç  s
  € Ø��€JØ�9�9€LÝŒh‰jŒj�"œ*™,œ,­¬©¬½¼Ñ9JÔ9JÐK€Fà	
ˆA˜ 1Ð%Ð%Ð&Ø	
ˆA˜ 1Ð%Ð%Ð&Ø	
ˆA˜ 1Ð%Ð%Ð&ð€Eð
 ð Vð VˆØ×Ò˜UÑ#Ô#Ð#ÝŒ~˜e Z°Ñ8Ô8¸AÒ=Ð=Ð=Ð=ÝŒ~˜e Z°Ñ8Ô8¸AÒ=Ð=Ð=Ð=ÝŒ•bÔ'­¬¸ÀÈfÑUÔUÐUÐUð	Vð Vr   r   c                 óÖ   — |                       g d¢¦  «         g d¢}g d¢}g d¢}t          j        | |¦  «        sJ ‚t          j        | |¦  «        rJ ‚t          j        | |¦  «        rJ ‚d S )N)r"   r½   r"   r¿   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   )r–   r   Úis_path)r   rn  ro  Úanother_invalid_paths       r   Útest_ispathrt  ÷  sŠ   € ð ×ÒÐ5Ð5Ð5Ñ6Ô6Ð6Ø��€JØ�<�<€LØ*˜?˜?ÐÝŒ:�a˜Ñ$Ô$Ð$Ð$Ð$ÝŒz˜!˜\Ñ*Ô*Ð*Ð*Ð*ÝŒz˜!Ð1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2r   c                 ó4  — |                       g d¢¦  «         |                      d¦  «         t          j        | g d¢ddg¦  «        }t	          |                     ¦   «         ¦  «        h d£k    sJ ‚t	          |                     ¦   «         ¦  «        dhk    sJ ‚d S )Nr   r   ©r   r   r   r"   r¿   ¾   r   r   r   r!   ©r–   rˆ   r   Úrestricted_viewÚsetr:   r?   ©r   ru   s     r   Útest_restricted_viewr|    s“   € à×ÒÐEÐEÐEÑFÔFÐFØ‡J‚Jˆq�M„M€MÝ
Ô˜1˜i˜i˜i¨&°&Ð)9Ñ:Ô:€AÝˆq�wŠw‰yŒy‰>Œ>˜Y˜Y˜YÒ&Ð&Ð&Ð&Ýˆq�wŠw‰yŒy‰>Œ>˜f˜XÒ%Ð%Ð%Ð%Ð%Ð%r   c                 ó4  — |                       g d¢¦  «         |                      d¦  «         t          j        | g d¢ddg¦  «        }t	          |                     ¦   «         ¦  «        h d£k    sJ ‚t	          |                     ¦   «         ¦  «        dhk    sJ ‚d S )N)r  r  )r   r   r   r!  )r   r   r   )r   r   r   r   r   rv  r   )r   r   r   rw  r!   rx  r{  s     r   Útest_restricted_view_multir~    s›   € à×ÒØUÐUÐUñô ð ð ‡J‚Jˆq�M„M€MÝ
Ô˜1˜i˜i˜i¨)°YÐ)?Ñ@Ô@€AÝˆq�wŠw‰yŒy‰>Œ>˜Y˜Y˜YÒ&Ð&Ð&Ð&Ýˆq�wŠw‰yŒy‰>Œ>˜f˜XÒ%Ð%Ð%Ð%Ð%Ð%r   )%r«   r�   Únetworkxr   Únetworkx.utilsr   r   r   r   rã   ÚmarkÚparametrizer   r(   r"  r'  r  r  r  r  r  r#  r,  r0  rB  rL  rS  rV  r]  r_  rb  rd  rh  rp  rt  r|  r~  rá   r   r   ú<module>rƒ     sŒ  ðØ €€€à €€€à Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3ð(ð (ð (ð
cNð cNð cNð cNð cNñ cNô cNð cNðL,&ð ,&ð ,&ð ,&ð ,&ñ ,&ô ,&ð ,&ð^ „×ÒØ�2”8˜RœZ¨¬¸¼ÐHñô ð&ð &ñô ð&ð< „×ÒØà�vÐ	Ð	 Ð(Ø�uÐ 7¨FÐ"3Ð	4Ð	4°dÐ;ðñô ð	ð 	ñô ð	ð „×Ò˜¨¬°"´*Ð'=Ñ>Ô>ðð ñ ?Ô>ðð: „×ÒØà˜sÐ	#Ð	# XÐ.Ø˜S�/¨H°c¨?Ð	;Ð	;¸TÐBðñô ð!ð !ñô ð!ð „×Ò˜¨¬°r´Ð'GÑHÔHðð ñ IÔHðð: „×ÒØà SÐ	)Ð	)¨8Ð4Ø �_°(¸C°Ð	AÐ	AÀ4ÐHðñô ð#ð #ñô ð#ð'ð 'ð 'ð"/ð /ð /ð, „×ÒØ�2”8˜RœZ¨¬¸¼ÐHñô ðSMð SMñô ðSMðl „×Ò˜¨¬°"´*Ð'=Ñ>Ô>ðA;ð A;ñ ?Ô>ðA;ðH „×Ò˜¨¬°r´Ð'GÑHÔHðV;ð V;ñ IÔHðV;ðr"ð "ð "ð „×ÒØ�2”8˜RœZ¨¬¸¼ÐHñô ð*ð *ñô ð*ð „×ÒØ�2”8˜RœZ¨¬¸¼ÐHñô ðWð Wñô ðWðð ð ð „×Ò˜¨¬°"´*Ð'=Ñ>Ô>ðDð Dñ ?Ô>ðDð „×Ò˜¨¬°r´Ð'GÑHÔHðHð Hñ IÔHðHð4Vð Vð Vð  „×ÒØˆ(ˆ"Œ(‰*Œ*�j�b”j‘l”l M B¤M¡O¤O°_°R´_Ñ5FÔ5FÐ	Gñô ð3ð 3ñô ð3ð „×Ò˜˜x˜rœx™zœz¨:¨2¬:©<¬<Ð8Ñ9Ô9ð&ð &ñ :Ô9ð&ð „×Ò˜˜}˜rœ}™œ°°´Ñ0AÔ0AÐBÑCÔCð&ð &ñ DÔCð&ð &ð &r   