Ë
    D^(hÁx  ã                   óœ   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
  G d„ d«      Z G d„ de«      Z G d„ de«      Z G d	„ d
«      Zy)é    N)Úedges_equalÚgraphs_equalÚnodes_equalc                   óÚ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                  j                   ej                  «       d	k(  d
¬«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚBaseGraphTesterz:Tests for data-structure independent graph class features.c                 ó\   — | j                   }d|v sJ ‚d|vsJ ‚d|vsJ ‚g |vsJ ‚ddi|vsJ ‚y )Né   é   Úb)ÚK3©ÚselfÚGs     ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/classes/tests/test_graph.pyÚtest_containszBaseGraphTester.test_contains   sJ   € Ø�G‰GˆØ�A‰vˆˆvØ˜‰zÐˆzØ˜!‰|Ðˆ|Ø˜‰{Ðˆ{Ø�1ˆv˜Q‰Ð‰ó    c                 ó�   — | j                   }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚y ©Né   )r   ÚlenÚorderÚnumber_of_nodesr   s     r   Ú
test_orderzBaseGraphTester.test_order   sD   € Ø�G‰GˆÜ�1‹v˜Š{Ðˆ{Ø�w‰w‹y˜AŠ~Ðˆ~Ø× Ñ Ó" aÒ'Ð'Ñ'r   c                 ó¤  ‡— | j                   Št        ‰j                  ‰j                  «      sJ ‚t        ‰j                  ‰j
                  «      sJ ‚t        ˆfd„‰j                  j                  «       D «       «      sJ ‚t        ‰j                  «       «      | j                  k(  sJ ‚t        ‰j                  d¬«      «      di fdi fdi fgk(  sJ ‚y )Nc              3   óJ   •K  — | ]  }t        |‰j                  «      –— Œ y ­w©N)Ú
isinstanceÚadjlist_inner_dict_factory)Ú.0Úadjr   s     €r   ú	<genexpr>z-BaseGraphTester.test_nodes.<locals>.<genexpr>!   s#   øè ø€ ò 
Ø>AŒJ�s˜A×8Ñ8×9ñ
ùs   ƒ #T©Údatar   r	   é   )r   r   Ú_nodeÚnode_dict_factoryÚ_adjÚadjlist_outer_dict_factoryÚallÚvaluesÚsortedÚnodesÚk3nodesr   s    @r   Ú
test_nodeszBaseGraphTester.test_nodes   s¹   ø€ Ø�G‰GˆÜ˜!Ÿ'™' 1×#6Ñ#6Ô7Ð7Ð7Ü˜!Ÿ&™& !×">Ñ">Ô?Ð?Ð?Üó 
ØEFÇVÁVÇ]Á]Ã_ô
ô 
ð 	
ð 
ô �a—g‘g“iÓ  D§L¡LÒ0Ð0Ð0Ü�a—g‘g 4�gÓ(Ó)¨q°"¨g¸¸2°wÀÀBÀÐ-HÒHÐHÑHr   c                 ó"  — | j                  «       }t        j                  t        «      5  |j	                  d «       d d d «       t        j                  t        «      5  |j                  d g«       d d d «       t        j                  t        «      5  |j                  dd «       d d d «       t        j                  t        «      5  |j                  dg«       d d d «       y # 1 sw Y   Œ¦xY w# 1 sw Y   Œ~xY w# 1 sw Y   ŒVxY w# 1 sw Y   y xY w)Nr   ©r   N)ÚGraphÚpytestÚraisesÚ
ValueErrorÚadd_nodeÚadd_nodes_fromÚadd_edgeÚadd_edges_fromr   s     r   Útest_none_nodezBaseGraphTester.test_none_node'   sÐ   € Ø�J‰J‹LˆÜ�]‰]œ:Ó&ñ 	Ø�J‰J�tÔ÷	ä�]‰]œ:Ó&ñ 	%Ø×Ñ˜d˜VÔ$÷	%ä�]‰]œ:Ó&ñ 	 Ø�J‰J�q˜$Ô÷	 ä�]‰]œ:Ó&ñ 	*Ø×Ñ˜i˜[Ô)÷	*ð 	*÷	ð 	ú÷	%ð 	%ú÷	 ð 	 ú÷	*ð 	*ús/   ªC!ÁC-ÂC9ÃDÃ!C*Ã-C6Ã9DÄDc                 ó¸   — | j                   }|j                  d«      sJ ‚|j                  d«      rJ ‚|j                  g «      rJ ‚|j                  ddi«      rJ ‚y )Nr	   r
   )r   Úhas_noder   s     r   Útest_has_nodezBaseGraphTester.test_has_node2   sV   € Ø�G‰GˆØ�z‰z˜!Œ}Ðˆ}Ø—:‘:˜a”=Ð Ð Ø—:‘:˜b”>Ð!Ð!Ø—:‘:˜q !˜fÔ%Ð%Ð%Ð%r   c                 ól   — | j                   }|j                  dd«      sJ ‚|j                  dd«      rJ ‚y )Nr   r	   éÿÿÿÿ)r   Úhas_edger   s     r   Útest_has_edgezBaseGraphTester.test_has_edge9   s6   € Ø�G‰GˆØ�z‰z˜!˜QÔÐÐØ—:‘:˜a Ô$Ð$Ð$Ð$r   c                 óð   — | j                   }t        |j                  d«      «      ddgk(  sJ ‚t        j                  t
        j                  «      5  |j                  d«       d d d «       y # 1 sw Y   y xY w©Nr   r	   r$   r>   )r   r+   Ú	neighborsr2   r3   ÚnxÚNetworkXErrorr   s     r   Útest_neighborszBaseGraphTester.test_neighbors>   s\   € Ø�G‰GˆÜ�a—k‘k !“nÓ%¨!¨Q¨Ò/Ð/Ð/Ü�]‰]œ2×+Ñ+Ó,ñ 	Ø�K‰K˜ŒO÷	÷ 	ñ 	ús   ÁA,Á,A5ÚPyPyzPyPy gc is different)Úreasonc                 óÆ  — | j                  «       }d„ }t        j                  «         || j                   «      }|j                  «        t        j                  «         || j                   «      }||k(  sJ ‚ G d„ d| j                   «      }t        j                  «         |«       } ||«      }|j                  «        t        j                  «         ||«      }||k(  sJ ‚y )Nc                 óP   ‡ — t        ˆ fd„t        j                  «       D «       «      S )Nc              3   ón   •K  — | ],  }t        |t        j                  «      st        |‰«      rd –— Œ. y­w)r	   N)r   ÚweakrefÚ
ProxyTypes)r   ÚobjÚ_types     €r   r!   zRBaseGraphTester.test_memory_leak.<locals>.count_objects_of_type.<locals>.<genexpr>S   s2   øè ø€ ò àÜ! #¤w×'9Ñ'9Ô:¼zÈ#ÈuÔ?Uô ñùs   ƒ25)ÚsumÚgcÚget_objects)rO   s   `r   Úcount_objects_of_typez?BaseGraphTester.test_memory_leak.<locals>.count_objects_of_typeJ   s&   ø€ ô ó äŸ>™>Ó+ôó ð r   c                   ó   — e Zd Zy)ú1BaseGraphTester.test_memory_leak.<locals>.MyGraphN)Ú__name__Ú
__module__Ú__qualname__© r   r   ÚMyGraphrU   a   s   „ Ør   rZ   )r1   rQ   ÚcollectÚcopy)r   r   rS   ÚbeforeÚafterrZ   s         r   Útest_memory_leakz BaseGraphTester.test_memory_leakD   s­   € ð �J‰J‹Lˆò	ô 	�
‰
ŒÙ& t§z¡zÓ2ˆØ	�‰ŒÜ
�
‰
ŒÙ% d§j¡jÓ1ˆØ˜ŠÐˆô	�d—j‘jô 	ô 	�
‰
ŒÙ‹IˆÙ& wÓ/ˆØ	�‰ŒÜ
�
‰
ŒÙ% gÓ.ˆØ˜ŠÐ‰r   c                 ó®  — | j                   }t        |j                  |j                  «      sJ ‚t	        |j                  «       g d¢«      sJ ‚t	        |j                  d«      ddg«      sJ ‚t	        |j                  ddg«      g d¢«      sJ ‚t        j                  t        j                  «      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)N©©r   r	   ©r   r$   ©r	   r$   r   rb   rc   r	   r>   )
r   r   r'   r(   r   Úedgesr2   r3   rD   rE   r   s     r   Ú
test_edgeszBaseGraphTester.test_edgesl   s¨   € Ø�G‰GˆÜ˜!Ÿ&™& !×">Ñ">Ô?Ð?Ð?Ü˜1Ÿ7™7›9Ò&>Ô?Ð?Ð?Ü˜1Ÿ7™7 1›:¨°Ð'7Ô8Ð8Ð8Ü˜1Ÿ7™7 A q 6›?Ò,DÔEÐEÐEÜ�]‰]œ2×+Ñ+Ó,ñ 	Ø�G‰G�BŒK÷	÷ 	ñ 	ús   Â0CÃCc                 ó^  — | j                   }t        |j                  «       «      g d¢k(  sJ ‚t        |j                  «       «      ddddœk(  sJ ‚|j                  d«      dk(  sJ ‚t	        j
                  t        j                  «      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)N)rc   rd   )r$   r$   r$   ©r   r	   r$   r   r>   )r   r+   ÚdegreeÚdictr2   r3   rD   rE   r   s     r   Útest_degreezBaseGraphTester.test_degreeu   s�   € Ø�G‰GˆÜ�a—h‘h“jÓ!Ò%=Ò=Ð=Ð=Ü�A—H‘H“JÓ q¨Q°1Ñ#5Ò5Ð5Ð5Ø�x‰x˜‹{˜aÒÐÐÜ�]‰]œ2×+Ñ+Ó,ñ 	Ø�H‰H�RŒL÷	÷ 	ñ 	ús   ÂB#Â#B,c                 óp   — | j                   }|j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚y r   )r   ÚsizeÚnumber_of_edgesr   s     r   Ú	test_sizezBaseGraphTester.test_size}   s4   € Ø�G‰GˆØ�v‰v‹x˜1Š}Ðˆ}Ø× Ñ Ó" aÒ'Ð'Ñ'r   c                 ó¼  — | j                   }t        |j                  «       | j                  «      sJ ‚t        |j                  d«      dg«      sJ ‚t        |j                  ddg«      ddg«      sJ ‚t        |j                  dg«      g «      sJ ‚t        |j                  d«      g «      sJ ‚|j                  d«      }t	        j
                  t        j                  d¬«      5  t        |«       d d d «       |j                  dddi g«      }t	        j
                  t        j                  d¬«      5  t        |«       d d d «       y # 1 sw Y   ŒXxY w# 1 sw Y   y xY w)	Nr   r	   r>   Úfoozis not a node or a sequence)Úmatchr$   z&in sequence nbunch is not a valid node)	r   r   Únbunch_iterr-   r2   r3   rD   rE   Úlist)r   r   Úbunchs      r   Útest_nbunch_iterz BaseGraphTester.test_nbunch_iter‚   s'  € Ø�G‰GˆÜ˜1Ÿ=™=›?¨D¯L©LÔ9Ð9Ð9Ü˜1Ÿ=™=¨Ó+¨a¨SÔ1Ð1Ð1Ü˜1Ÿ=™=¨!¨Q¨Ó0°1°a°&Ô9Ð9Ð9ä˜1Ÿ=™=¨"¨Ó.°Ô3Ð3Ð3ä˜1Ÿ=™=¨Ó/°Ô4Ð4Ð4à—‘˜bÓ!ˆä�]‰]œ2×+Ñ+Ð3PÔQñ 	Ü�ŒK÷	ð —‘˜q ! Q¨˜mÓ,ˆä�]‰]Ü×ÑÐ$Lô
ñ 	ô �ŒK÷	ð 	÷	ð 	ú÷
	ð 	ús   Ã#EÄ1EÅEÅEc                 óâ   — | j                  «       }dt        «       fg}t        j                  t        j
                  «      5  t        |j                  |«      «       d d d «       y # 1 sw Y   y xY w)NÚx)r1   Úsetr2   r3   rD   rE   rt   rs   )r   r   Únbunchs      r   Ú"test_nbunch_iter_node_format_raisez2BaseGraphTester.test_nbunch_iter_node_format_raise˜   sT   € ð �J‰J‹LˆØœ›�,�ˆÜ�]‰]œ2×+Ñ+Ó,ñ 	(Ü�—‘˜vÓ&Ô'÷	(÷ 	(ñ 	(ús   ÁA%Á%A.c                 ód  — | j                  «       }|j                  dd«       t        |j                  «       «      dgk(  sJ ‚t	        |j                  «       «      ddik(  sJ ‚|j                  d«      dk(  sJ ‚t        |j                  dg«      «      dgk(  sJ ‚|j                  dd¬«      dk(  sJ ‚y )Nr	   rd   r$   Úweight©r}   )r1   r7   r+   ri   rj   r   s     r   Útest_selfloop_degreez$BaseGraphTester.test_selfloop_degree£   s£   € Ø�J‰J‹LˆØ	�
‰
�1�aÔÜ�a—h‘h“jÓ! f XÒ-Ð-Ð-Ü�A—H‘H“JÓ A q 6Ò)Ð)Ð)Ø�x‰x˜‹{˜aÒÐÐÜ�a—h‘h ˜s“mÓ$¨¨Ò0Ð0Ð0Ø�x‰x˜ (ˆxÓ+¨qÒ0Ð0Ñ0r   c                 ó8  — | j                   j                  «       }|j                  dd«       t        t	        j
                  |«      dg«      sJ ‚t        t	        j                  |«      dg«      sJ ‚t	        j                  |«      dk(  sJ ‚|j                  dd«       |j                  dd«       |j                  dg«       |j                  dd«       |j                  d«       |j                  dd«       |j                  dd«       |j                  ddg«       y )Nr   ©r   r   r	   )r   r\   r7   r   rD   Únodes_with_selfloopsr   Úselfloop_edgesÚnumber_of_selfloopsÚremove_edgeÚremove_edges_fromÚremove_nodeÚremove_nodes_fromr   s     r   Útest_selfloopszBaseGraphTester.test_selfloops¬   sæ   € Ø�G‰G�L‰L‹NˆØ	�
‰
�1�aÔÜœ2×2Ñ2°1Ó5¸°sÔ;Ð;Ð;Üœ2×,Ñ,¨QÓ/°&°Ô:Ð:Ð:Ü×%Ñ% aÓ(¨AÒ-Ð-Ð-Ø	�‰�a˜ÔØ	�
‰
�1�aÔØ	×Ñ˜V˜HÔ%Ø	�
‰
�1�aÔØ	�‰�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	×Ñ˜Q ˜FÕ#r   c                 óœ  — | j                   j                  «       }|j                  }t        |j                  «      t        |«      k(  sJ ‚i |_        t        |j                  «      t        |«      k7  sJ ‚|j
                  }t        |j
                  «      t        |«      k(  sJ ‚i |_        t        |j
                  «      t        |«      k7  sJ ‚y r   )r   r\   r    Úidr'   r,   r%   )r   r   Úold_adjÚ	old_nodess       r   Útest_cache_resetz BaseGraphTester.test_cache_reset»   s™   € Ø�G‰G�L‰L‹NˆØ—%‘%ˆÜ�!—%‘%‹yœB˜w›KÒ'Ð'Ð'ØˆŒÜ�!—%‘%‹yœB˜w›KÒ'Ð'Ð'à—G‘Gˆ	Ü�!—'‘'‹{œb ›mÒ+Ð+Ð+ØˆŒÜ�!—'‘'‹{œb ›mÒ+Ð+Ñ+r   c                 ó   — | j                   j                  «       }t        |j                  «      t        |j                  «      k(  sJ ‚t        |j                  «      t        |j                  «      k(  sJ ‚t        |j
                  «      t        |j
                  «      k(  sJ ‚t        |j                  «      t        |j                  «      k(  sJ ‚y r   )r   r\   r‹   r,   re   ri   r    r   s     r   Útest_attributes_cachedz&BaseGraphTester.test_attributes_cachedÇ   s‰   € Ø�G‰G�L‰L‹NˆÜ�!—'‘'‹{œb §¡›kÒ)Ð)Ð)Ü�!—'‘'‹{œb §¡›kÒ)Ð)Ð)Ü�!—(‘(‹|œr !§(¡(›|Ò+Ð+Ð+Ü�!—%‘%‹yœB˜qŸu™u›IÒ%Ð%Ñ%r   N)rV   rW   rX   Ú__doc__r   r   r.   r9   r<   r@   rF   r2   ÚmarkÚskipifÚplatformÚpython_implementationr_   rf   rk   ro   rv   r{   r   r‰   rŽ   r�   rY   r   r   r   r      s•   „ ÙDòò(òIò	*ò&ò%ò
ð ‡[�[×ÑØ&ˆ×&Ñ&Ó(¨FÑ2Ð;Qð ó ñ#óð#òJòò(ò
ò,	(ò1ò$ò
,ó&r   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„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(y')(ÚBaseAttrGraphTesterz(Tests of graph class attribute features.c                 óŒ  — | j                  «       }|j                  dddd¬«       |j                  dddd¬«       t        d„ |j                  d¬«      D «       «      g d	¢k(  sJ ‚t	        |j                  d¬«      «      dd
ddœk(  sJ ‚|j                  dd¬«      dk(  sJ ‚t        |j                  dgd¬«      dg«      sJ ‚t        d„ |j                  d¬«      D «       g d¢«      sJ ‚t	        |j                  d¬«      «      ddddœk(  sJ ‚|j                  dd¬«      dk(  sJ ‚t        |j                  dgd¬«      dg«      sJ ‚y )Nr	   r$   r   )r}   Úotherr
   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   rY   ©r   ÚnÚds      r   r!   z;BaseAttrGraphTester.test_weighted_degree.<locals>.<genexpr>Ö   s   è ø€ Ò>™D˜A˜q”aÑ>ùó   ‚r}   r~   )r$   r   é   rŸ   )r	   r$   r   rd   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   rY   r›   s      r   r!   z;BaseAttrGraphTester.test_weighted_degree.<locals>.<genexpr>Û   s   è ø€ ÒC¡$ ! QœAÑCùrž   r™   )r   é   r
   r¡   )r	   r   )r1   r7   r+   ri   rj   r   r   r   s     r   Útest_weighted_degreez(BaseAttrGraphTester.test_weighted_degreeÒ   s<  € Ø�J‰J‹LˆØ	�
‰
�1�a ¨ˆ
Ô+Ø	�
‰
�1�a ¨ˆ
Ô+ÜÑ> A§H¡H°H HÓ$=Ô>Ó>Â)ÒKÐKÐKÜ�A—H‘H H�HÓ-Ó.°a¸AÀ!Ñ2DÒDÐDÐDØ�x‰x˜ (ˆxÓ+¨qÒ0Ð0Ð0Ü˜AŸH™H a S°˜HÓ:¸f¸XÔFÐFÐFäÑC¨!¯(©(¸'¨(Ó*BÔCÂYÔOÐOÐOÜ�A—H‘H G�HÓ,Ó-°Q¸1ÀÑ1CÒCÐCÐCØ�x‰x˜ 'ˆxÓ*¨aÒ/Ð/Ð/Ü˜AŸH™H a S°˜HÓ9¸V¸HÔEÐEÑEr   c                 ó¾   — g |j                   d<   g |j                  d   d<   |j                  dd«       g }|j                  dd|¬«       |j                  dd|¬«       y )Nrq   r   r	   r$   ©rq   )Úgraphr,   r…   r7   )r   r   Úlls      r   Úadd_attributesz"BaseAttrGraphTester.add_attributesà   sX   € Øˆ�‰�‰Øˆ�‰�‰
�5ÑØ	�‰�a˜ÔØˆØ	�
‰
�1�a˜Rˆ
Ô Ø	�
‰
�1�a˜Rˆ
Õ r   c                 ó�   — | j                  d¬«      }|j                  dk(  sJ ‚| j                  d¬«      }|j                  dk(  sJ ‚y )NÚ ©ÚnameÚtest)r1   r«   r   s     r   Ú	test_namezBaseAttrGraphTester.test_nameè   sD   € Ø�J‰J˜BˆJÓˆØ�v‰v˜Š|Ðˆ|Ø�J‰J˜FˆJÓ#ˆØ�v‰v˜ÒÐÑr   c                 ó–   — | j                  «       }|j                  ddg«       t        |«      t        |«      j                  › d�k(  sJ ‚y )Nrd   ©r$   r   z with 3 nodes and 2 edges©r1   r8   ÚstrÚtyperV   r   s     r   Útest_str_unnamedz$BaseAttrGraphTester.test_str_unnamedî   sE   € Ø�J‰J‹LˆØ	×Ñ˜& &Ð)Ô*Ü�1‹vœD ›G×,Ñ,Ð-Ð-FÐGÒGÐGÑGr   c                 óš   — | j                  d¬«      }|j                  ddg«       t        |«      t        |«      j                  › d�k(  sJ ‚y )Nrq   rª   rd   r¯   z% named 'foo' with 3 nodes and 2 edgesr°   r   s     r   Útest_str_namedz"BaseAttrGraphTester.test_str_namedó   sJ   € Ø�J‰J˜EˆJÓ"ˆØ	×Ñ˜& &Ð)Ô*Ü�1‹vœD ›G×,Ñ,Ð-Ð-RÐSÒSÐSÑSr   c                 óø   — | j                  ddg«      }|j                  d¬«      }|j                  ddg«      }|j                  d¬«      }||j                  u sJ ‚||j                  u sJ ‚||j                  u sJ ‚y )	Nrb   rd   T©Úas_viewr   r	   F)r\   )r1   Úto_directedÚsubgraphÚreverseÚ_graph)r   r   ÚDGÚSDGÚRSDGs        r   Útest_graph_chainz$BaseAttrGraphTester.test_graph_chainø   s{   € Ø�J‰J˜ Ð'Ó(ˆØ�]‰] 4ˆ]Ó(ˆØ�k‰k˜1˜a˜&Ó!ˆØ�{‰{ ˆ{Ó&ˆØ�B—I‘I‰~Ðˆ~Ø�S—Z‘ZÑÐÐØ�d—k‘kÑ!Ð!Ñ!r   c                 ó  — | j                  «       }|j                  d«       |j                  dd«       | j                  |«       |j	                  «       }| j                  ||«       | j                  ||«       | j                  ||«       y ©Nr   r	   r$   )r1   r5   r7   r§   r\   r   Údifferent_attrdictÚshallow_copy_attrdict©r   r   ÚHs      r   Ú	test_copyzBaseAttrGraphTester.test_copy  so   € Ø�J‰J‹LˆØ	�
‰
�1ŒØ	�
‰
�1�aÔØ×Ñ˜AÔà�F‰F‹HˆØ×Ñ˜!˜QÔØ×Ñ  1Ô%Ø×"Ñ" 1 aÕ(r   c                 ó  — | j                  «       }|j                  d«       |j                  dd«       | j                  |«       |j	                  |«      }| j                  ||«       | j                  ||«       | j                  ||«       y rÂ   )r1   r5   r7   r§   Ú	__class__r   rÃ   rÄ   rÅ   s      r   Útest_class_copyz#BaseAttrGraphTester.test_class_copy  sq   € Ø�J‰J‹LˆØ	�
‰
�1ŒØ	�
‰
�1�aÔØ×Ñ˜AÔà�K‰K˜‹NˆØ×Ñ˜!˜QÔØ×Ñ  1Ô%Ø×"Ñ" 1 aÕ(r   c                 óœ  — | j                  «       }|j                  d«       |j                  dd«       | j                  |«       |j	                  «       }|j                  |«       |j                  |j                  «       «       t        |j                  d   «      dk(  sJ ‚|j                  «       r|j                  d   d   d   n|j                  d   d   }t        |«      dk(  sJ ‚t        |j                  d   «      dk(  sJ ‚|j                  «       r|j                  d   d   d   n|j                  d   d   }t        |«      dk(  sJ ‚y rÂ   )r1   r5   r7   r§   rÉ   r6   r8   re   r   r,   Úis_multigraphr    )r   r   rÆ   Úddicts       r   Útest_fresh_copyz#BaseAttrGraphTester.test_fresh_copy  s  € Ø�J‰J‹LˆØ	�
‰
�1ŒØ	�
‰
�1�aÔØ×Ñ˜AÔà�K‰K‹MˆØ	×Ñ˜ÔØ	×Ñ˜Ÿ™›Ô#Ü�1—7‘7˜1‘:‹ !Ò#Ð#Ð#Ø"#§/¡/Ô"3�—‘�a‘˜‘˜A’¸¿¹¸q¹À!¹ˆÜ�5‹z˜QŠÐˆÜ�1—7‘7˜1‘:‹ !Ò#Ð#Ð#Ø"#§/¡/Ô"3�—‘�a‘˜‘˜A’¸¿¹¸q¹À!¹ˆÜ�5‹z˜QŠÐ‰r   c                 óp   — | j                  ||«       | j                  ||«       | j                  ||«       y r   )r   rÃ   Údeep_copy_attrdict©r   rÆ   r   s      r   Úis_deepcopyzBaseAttrGraphTester.is_deepcopy'  s2   € Ø×Ñ˜!˜QÔØ×Ñ  1Ô%Ø×Ñ  1Õ%r   c                 óp   — | j                  ||«       | j                  ||«       | j                  ||«       y r   )Údeepcopy_graph_attrÚdeepcopy_node_attrÚdeepcopy_edge_attrrÑ   s      r   rÐ   z&BaseAttrGraphTester.deep_copy_attrdict,  s2   € Ø× Ñ   AÔ&Ø×Ñ  1Ô%Ø×Ñ  1Õ%r   c                 óÄ   — |j                   d   |j                   d   k(  sJ ‚|j                   d   j                  d«       |j                   d   |j                   d   k7  sJ ‚y ©Nrq   r	   ©r¥   ÚappendrÑ   s      r   rÔ   z'BaseAttrGraphTester.deepcopy_graph_attr1  óT   € Ø�w‰w�u‰~ §¡¨¡Ò/Ð/Ð/Ø	�‰�‰×Ñ˜aÔ Ø�w‰w�u‰~ §¡¨¡Ò/Ð/Ñ/r   c                 óâ   — |j                   d   d   |j                   d   d   k(  sJ ‚|j                   d   d   j                  d«       |j                   d   d   |j                   d   d   k7  sJ ‚y ©Nr   rq   r	   ©r,   rÚ   rÑ   s      r   rÕ   z&BaseAttrGraphTester.deepcopy_node_attr6  óm   € Ø�w‰w�q‰z˜%Ñ  A§G¡G¨A¡J¨uÑ$5Ò5Ð5Ð5Ø	�‰�‰
�5Ñ× Ñ  Ô#Ø�w‰w�q‰z˜%Ñ  A§G¡G¨A¡J¨uÑ$5Ò5Ð5Ñ5r   c                 óœ   — |d   d   d   |d   d   d   k(  sJ ‚|d   d   d   j                  d«       |d   d   d   |d   d   d   k7  sJ ‚y ©Nr	   r$   rq   ©rÚ   rÑ   s      r   rÖ   z&BaseAttrGraphTester.deepcopy_edge_attr;  óh   € Ø�‰t�A‰w�u‰~  1¡ a¡¨¡Ò/Ð/Ð/Ø	ˆ!‰ˆQ‰�‰×Ñ˜aÔ Ø�‰t�A‰w�u‰~  1¡ a¡¨¡Ò/Ð/Ñ/r   c                 óL   — | j                  ||«       | j                  ||«       y r   )r   rÄ   rÑ   s      r   Úis_shallow_copyz#BaseAttrGraphTester.is_shallow_copy@  s"   € Ø×Ñ˜!˜QÔØ×"Ñ" 1 aÕ(r   c                 óp   — | j                  ||«       | j                  ||«       | j                  ||«       y r   )Úshallow_copy_graph_attrÚshallow_copy_node_attrÚshallow_copy_edge_attrrÑ   s      r   rÄ   z)BaseAttrGraphTester.shallow_copy_attrdictD  s2   € Ø×$Ñ$ Q¨Ô*Ø×#Ñ# A qÔ)Ø×#Ñ# A qÕ)r   c                 óÄ   — |j                   d   |j                   d   k(  sJ ‚|j                   d   j                  d«       |j                   d   |j                   d   k(  sJ ‚y rØ   rÙ   rÑ   s      r   rç   z+BaseAttrGraphTester.shallow_copy_graph_attrI  rÛ   r   c                 óâ   — |j                   d   d   |j                   d   d   k(  sJ ‚|j                   d   d   j                  d«       |j                   d   d   |j                   d   d   k(  sJ ‚y rÝ   rÞ   rÑ   s      r   rè   z*BaseAttrGraphTester.shallow_copy_node_attrN  rß   r   c                 óœ   — |d   d   d   |d   d   d   k(  sJ ‚|d   d   d   j                  d«       |d   d   d   |d   d   d   k(  sJ ‚y rá   râ   rÑ   s      r   ré   z*BaseAttrGraphTester.shallow_copy_edge_attrS  rã   r   c                 ó²  — |d   d   d   }d|j                   d   d   d<   |j                  |j                  k(  sJ ‚||j                   d   d   d<   |j                  |j                  k(  sJ ‚|j                  d   d   }d|j                  d   d<   |j                  |j                  k(  sJ ‚||j                  d   d<   |j                  |j                  k(  sJ ‚y ©Nr	   r$   rq   Úbazr   )r    re   r,   ©r   rÆ   r   Úold_foos       r   Úsame_attrdictz!BaseAttrGraphTester.same_attrdictX  sÍ   € Ø�A‘$�q‘'˜%‘.ˆØ"ˆ�‰ˆa‰�‰�EÑØ�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ø$ˆ�‰ˆa‰�‰�EÑØ�w‰w˜!Ÿ'™'Ò!Ð!Ð!à—'‘'˜!‘*˜UÑ#ˆØ!ˆ�‰�‰
�5ÑØ�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ø#ˆ�‰�‰
�5ÑØ�w‰w˜!Ÿ'™'Ò!Ð!Ñ!r   c                 ó²  — |d   d   d   }d|j                   d   d   d<   |j                  |j                  k7  sJ ‚||j                   d   d   d<   |j                  |j                  k(  sJ ‚|j                  d   d   }d|j                  d   d<   |j                  |j                  k7  sJ ‚||j                  d   d<   |j                  |j                  k(  sJ ‚y rî   )r    r'   r,   r%   rð   s       r   rÃ   z&BaseAttrGraphTester.different_attrdicte  sÍ   € Ø�A‘$�q‘'˜%‘.ˆØ"ˆ�‰ˆa‰�‰�EÑØ�v‰v˜Ÿ™ÒÐÐØ$ˆ�‰ˆa‰�‰�EÑØ�v‰v˜Ÿ™ÒÐÐà—'‘'˜!‘*˜UÑ#ˆØ!ˆ�‰�‰
�5ÑØ�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ø#ˆ�‰�‰
�5ÑØ�w‰w˜!Ÿ'™'Ò!Ð!Ñ!r   c                 ó‚  — |j                   |j                   k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j	                  «       s]|j	                  «       sM|j                   d   d   |j                   d   d   u sJ ‚|j                   d   d   |j                   d   d   u sJ ‚y |j	                  «       s"|j                   |_        |j                   |_        |j	                  «       s"|j                   |_        |j                   |_        |j
                  |j
                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  d   d   |j
                  d   d   u sJ ‚|j                  d   d   |j
                  d   d   u sJ ‚y )Nr	   r$   )r'   r%   r¥   r«   Úis_directedÚ_predÚ_succrÑ   s      r   r   z BaseAttrGraphTester.graphs_equalr  sm  € Ø�v‰v˜Ÿ™ÒÐÐØ�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ø�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ø�v‰v˜Ÿ™ÒÐÐØ�}‰}Œ q§}¡}¤Ø—6‘6˜!‘9˜Q‘< 1§6¡6¨!¡9¨Q¡<Ñ/Ð/Ð/Ø—6‘6˜!‘9˜Q‘< 1§6¡6¨!¡9¨Q¡<Ñ/Ð/Ñ/à—=‘=”?ØŸ&™&�”ØŸ&™&�”Ø—=‘=”?ØŸ&™&�”ØŸ&™&�”Ø—7‘7˜aŸg™gÒ%Ð%Ð%Ø—7‘7˜aŸg™gÒ%Ð%Ð%Ø—7‘7˜1‘:˜a‘= A§G¡G¨A¡J¨q¡MÑ1Ð1Ð1Ø—7‘7˜1‘:˜a‘= A§G¡G¨A¡J¨q¡MÑ1Ð1Ñ1r   c                 óJ  — | j                   j                  «       }d|j                  d<   t        |j                  |j                  «      sJ ‚|j                  d   dk(  sJ ‚|j                  d= |j                  i k(  sJ ‚| j                  d¬«      }|j                  d   dk(  sJ ‚y )NÚbarrq   r¤   )r   r\   r¥   r   Úgraph_attr_dict_factoryr1   rÅ   s      r   Útest_graph_attrz#BaseAttrGraphTester.test_graph_attr†  s�   € Ø�G‰G�L‰L‹NˆØˆ�‰�‰Ü˜!Ÿ'™' 1×#<Ñ#<Ô=Ð=Ð=Ø�w‰w�u‰~ Ò&Ð&Ð&Ø�G‰G�EˆNØ�w‰w˜"Š}Ðˆ}Ø�J‰J˜5ˆJÓ!ˆØ�w‰w�u‰~ Ò&Ð&Ñ&r   c                 ó2  ‡— | j                   j                  «       Š‰j                  dd¬«       t        ˆfd„‰j	                  d¬«      D «       «      sJ ‚t        ‰j	                  «       g d¢«      sJ ‚t        ‰j	                  d¬«      di fdd	difd
i fg«      sJ ‚d‰j                  d   d	<   t        ‰j	                  d¬«      di fdd	difd
i fg«      sJ ‚t        ‰j	                  d	¬«      g d¢«      sJ ‚t        ‰j	                  d	d¬«      g d¢«      sJ ‚y )Nr	   rù   r¤   c              3   óP   •K  — | ]  \  }}t        |‰j                  «      –— Œ y ­wr   )r   Únode_attr_dict_factory)r   Úur�   r   s      €r   r!   z5BaseAttrGraphTester.test_node_attr.<locals>.<genexpr>“  s'   øè ø€ ò 
Ù8<¸¸1ŒJ�q˜!×2Ñ2×3ñ
ùs   ƒ#&Tr"   rh   r   rq   r$   rï   )r0   ©r	   rï   )r$   N)r#   Údefault))r   rù   r   )r$   rù   )r   r\   r5   r)   r,   r   r   s    @r   Útest_node_attrz"BaseAttrGraphTester.test_node_attr�  s  ø€ Ø�G‰G�L‰L‹NˆØ	�
‰
�1˜%ˆ
Ô Üó 
Ø@AÇÁÈTÀÓ@Rô
ô 
ð 	
ð 
ô ˜1Ÿ7™7›9¢iÔ0Ð0Ð0Ü˜1Ÿ7™7¨˜7Ó-°°B°¸!¸eÀU¸^Ð9LÈqÐRTÈgÐ/VÔWÐWÐWØ!ˆ�‰�‰
�5ÑÜ˜1Ÿ7™7¨˜7Ó-°°B°¸!¸eÀU¸^Ð9LÈqÐRTÈgÐ/VÔWÐWÐWÜ˜1Ÿ7™7¨˜7Ó.Ò0RÔSÐSÐSÜØ�G‰G˜¨ˆGÓ.Ò0Tô
ð 	
ñ 
r   c           	      óø   — | j                   j                  «       }ddi} |j                  d
i |¤Ž t        |j	                  «       g d¢«      sJ ‚t        |j	                  d¬«      di fdi fd	i fdddifg«      sJ ‚y )Nrq   rù   r   ©r   r	   r$   r   Tr"   r   r	   r$   )r   )r   r\   r5   r   r,   )r   r   Úas      r   Útest_node_attr2z#BaseAttrGraphTester.test_node_attr2Ÿ  s�   € Ø�G‰G�L‰L‹NˆØ�EˆNˆØˆ�
‰
Ñ˜ÒÜ˜1Ÿ7™7›9¢lÔ3Ð3Ð3ÜØ�G‰G˜ˆGÓ ! R ¨1¨b¨'°A°r°7¸QÀÈÀÐ<OÐ Pô
ð 	
ñ 
r   c                 ó†   — | j                  «       }|j                  ddd¬«       t        |j                  d   ddi«      sJ ‚y )Nr	   r$   rù   r¤   rd   rq   )r1   r7   r   re   r   s     r   Útest_edge_lookupz$BaseAttrGraphTester.test_edge_lookup¨  s;   € Ø�J‰J‹LˆØ	�
‰
�1�a˜Uˆ
Ô#Ü˜1Ÿ7™7 4™=¨5°%¨.Ô9Ð9Ñ9r   c                 ó   ‡— | j                  «       Š‰j                  ddd¬«       t        ˆfd„‰j                  d¬«      D «       «      sJ ‚t	        ‰j                  d¬«      ddddifg«      sJ ‚t	        ‰j                  d¬«      d	g«      sJ ‚y )
Nr	   r$   rù   r¤   c              3   óR   •K  — | ]  \  }}}t        |‰j                  «      –— Œ  y ­wr   )r   Úedge_attr_dict_factory)r   rÿ   Úvr�   r   s       €r   r!   z5BaseAttrGraphTester.test_edge_attr.<locals>.<genexpr>°  s)   øè ø€ ò 
Ù8?¸¸1¸aŒJ�q˜!×2Ñ2×3ñ
ùs   ƒ$'Tr"   rq   )r	   r$   rù   )r1   r7   r)   re   r   r   s    @r   Útest_edge_attrz"BaseAttrGraphTester.test_edge_attr­  s“   ø€ Ø�J‰J‹LˆØ	�
‰
�1�a˜Uˆ
Ô#Üó 
ØCDÇ7Á7ÐPTÀ7ÓCUô
ô 
ð 	
ð 
ô ˜1Ÿ7™7¨˜7Ó-°°A¸¸u°~Ð0FÐ/GÔHÐHÐHÜ˜1Ÿ7™7¨˜7Ó.°°Ô@Ð@Ñ@r   c                 óâ   — | j                  «       }|j                  ddgd¬«       t        |j                  d¬«      ddddifd	d
ddifg«      sJ ‚t        |j                  d¬«      ddg«      sJ ‚y )Nrd   ©r   r
   rq   r¤   Tr"   r	   r$   r   r
   )r	   r$   rq   )r   r
   rq   )r1   r8   r   re   r   s     r   Útest_edge_attr2z#BaseAttrGraphTester.test_edge_attr2¶  s„   € Ø�J‰J‹LˆØ	×Ñ˜& &Ð)¨uÐÔ5ÜØ�G‰G˜ˆGÓ ! Q¨°¨Ð!7¸!¸QÀÈÀÐ9OÐ Pô
ð 	
ð 
ô ˜1Ÿ7™7¨˜7Ó.°ÀÐ0NÔOÐOÑOr   c           	      óX  — | j                  «       }|j                  ddddifddddifgd¬	«       t        |j                  d
¬«      dddddœfdddddœfg«      sJ ‚|j	                  ddg«       |j                  ddddd¬«       t        |j                  d
¬«      ddddddœfg«      sJ ‚y )Nr	   r$   r}   é    r   r
   é@   rq   r¤   Tr"   )rq   r}   rd   r  r¡   rù   ©r#   Úspamrù   )r1   r8   r   re   r†   r7   r   s     r   Útest_edge_attr3z#BaseAttrGraphTester.test_edge_attr3¾  sÜ   € Ø�J‰J‹LˆØ	×Ñ˜1˜a (¨B Ð0°1°a¸(ÀB¸Ð2HÐIÈuÐÔUÜØ�G‰G˜ˆGÓà�A˜u°Ñ3Ð4Ø�A˜u°Ñ3Ð4ðô
ð 	
ð 
ð 	
×Ñ˜V VÐ,Ô-Ø	�
‰
�1�a˜a e°ˆ
Ô7ÜØ�G‰G˜ˆGÓ ! Q°¸EÈ%Ñ(PÐ!QÐ Rô
ð 	
ñ 
r   c           	      ó”  — | j                  «       }|j                  ddddd¬«       t        |j                  d¬«      ddddddœfg«      sJ ‚d	|d   d   d
<   t        |j                  d¬«      ddd	dddœfg«      sJ ‚d|j                  d   d   d
<   t        |j                  d¬«      ddddddœfg«      sJ ‚d|j                  d   d
<   t        |j                  d¬«      ddddddœfg«      sJ ‚ddg|j                  d   d   d<   d|j                  d   d   d<   dddddgddœ}t        |j                  d¬«      dd|fg«      sJ ‚y )Nr	   r$   r¡   rù   rq   r  Tr"   é
   r#   é   é   rd   éÈ   Úlistdatar}   )r#   r  rù   r  r}   )r1   r7   r   re   r    )r   r   Údds      r   Útest_edge_attr4z#BaseAttrGraphTester.test_edge_attr4Ï  sŸ  € Ø�J‰J‹LˆØ	�
‰
�1�a˜a e°ˆ
Ô7ÜØ�G‰G˜ˆGÓ ! Q°¸EÈ%Ñ(PÐ!QÐ Rô
ð 	
ð 
ð ˆˆ!‰ˆQ‰�‰ÜØ�G‰G˜ˆGÓ ! Q°¸UÈ5Ñ(QÐ!RÐ Sô
ð 	
ð 
ð !ˆ�‰ˆa‰�‰�FÑÜØ�G‰G˜ˆGÓ ! Q°¸UÈ5Ñ(QÐ!RÐ Sô
ð 	
ð 
ð !#ˆ�‰�‰�fÑÜØ�G‰G˜ˆGÓ ! Q°¸UÈ5Ñ(QÐ!RÐ Sô
ð 	
ð 
ð $& s )ˆ�‰ˆa‰�‰�JÑØ "ˆ�‰ˆa‰�‰�HÑàØØØ˜S˜	Øñ
ˆô ˜1Ÿ7™7¨˜7Ó-°°A°r°
¨|Ô<Ð<Ñ<r   c                 óô   — | j                   }| j                  |«       t        j                  |«      }| j	                  ||«       | j                  ||«       |j                  «       }| j                  ||«       y r   )r   r§   rD   r1   rå   rÃ   Úto_undirectedrÒ   rÅ   s      r   Útest_to_undirectedz&BaseAttrGraphTester.test_to_undirectedí  sb   € Ø�G‰GˆØ×Ñ˜AÔÜ�H‰H�Q‹KˆØ×Ñ˜Q Ô"Ø×Ñ  1Ô%Ø�O‰OÓˆØ×Ñ˜˜AÕr   c                 óN  — t        j                  d| j                  ¬«      }|j                  d¬«      }||j                  u sJ ‚|j                  dd«      sJ ‚|j                  dd«      s|j                  «       sJ ‚t        j                  t         j                  |j                  d«       t        j                  t         j                  |j                  dd«       |j                  dd«       |j                  dd«      sJ ‚|j                  dd«      s|j                  «       sJ ‚y y ©Nr$   )Úcreate_usingTr·   r   r	   r>   )rD   Ú
path_graphr1   r¹   r¼   r?   rõ   r2   r3   rE   r5   r7   ©r   rÆ   ÚH2s      r   Útest_to_directed_as_viewz,BaseAttrGraphTester.test_to_directed_as_viewö  sß   € Ü�M‰M˜!¨$¯*©*Ô5ˆØ�]‰] 4ˆ]Ó(ˆØ�B—I‘I‰~Ðˆ~Ø�{‰{˜1˜aÔ Ð Ð Ø�{‰{˜1˜aÔ  A§M¡M¤OÐ3Ð3Ü�‰”b×&Ñ&¨¯©°RÔ8Ü�‰”b×&Ñ&¨¯©°Q¸Ô:Ø	�
‰
�1�aÔØ�{‰{˜1˜aÔ Ð Ð Ø�{‰{˜1˜aÔ  A§M¡M¤OÐ3Ð3 OÐ r   c                 ó  — t        j                  d| j                  ¬«      }|j                  d¬«      }||j                  u sJ ‚|j                  dd«      sJ ‚|j                  dd«      sJ ‚t        j                  t         j                  |j                  d«       t        j                  t         j                  |j                  dd«       |j                  dd«       |j                  dd«      sJ ‚|j                  dd«      sJ ‚y r#  )rD   r%  r1   r   r¼   r?   r2   r3   rE   r5   r7   r&  s      r   Útest_to_undirected_as_viewz.BaseAttrGraphTester.test_to_undirected_as_view  sÊ   € Ü�M‰M˜!¨$¯*©*Ô5ˆØ�_‰_ Tˆ_Ó*ˆØ�B—I‘I‰~Ðˆ~Ø�{‰{˜1˜aÔ Ð Ð Ø�{‰{˜1˜aÔ Ð Ð Ü�‰”b×&Ñ&¨¯©°RÔ8Ü�‰”b×&Ñ&¨¯©°Q¸Ô:Ø	�
‰
�1�aÔØ�{‰{˜1˜aÔ Ð Ð Ø�{‰{˜1˜aÔ Ð Ñ r   c                 óL  ‡‡— | j                  «       } G ˆˆfd„d|j                  «       «      Š G ˆˆfd„d|j                  «       «      Š|j                  «       r ‰«       n ‰«       }|j	                  «       }t        |‰«      sJ ‚|j                  «       }t        |‰«      sJ ‚y )Nc                   ó"   •— e Zd Zˆ fd„Zˆfd„Zy)ú9BaseAttrGraphTester.test_directed_class.<locals>.newGraphc                 ó   •— ‰S r   rY   ©r   Ú
newDiGraphs    €r   Úto_directed_classzKBaseAttrGraphTester.test_directed_class.<locals>.newGraph.to_directed_class  ó	   ø€ Ø!Ð!r   c                 ó   •— ‰S r   rY   ©r   ÚnewGraphs    €r   Úto_undirected_classzMBaseAttrGraphTester.test_directed_class.<locals>.newGraph.to_undirected_class  ó   ø€ Ø�r   N©rV   rW   rX   r1  r6  ©r0  r5  s   €€r   r5  r-    ó   ø„ ô"õ r   r5  c                   ó"   •— e Zd Zˆ fd„Zˆfd„Zy)ú;BaseAttrGraphTester.test_directed_class.<locals>.newDiGraphc                 ó   •— ‰S r   rY   r/  s    €r   r1  zMBaseAttrGraphTester.test_directed_class.<locals>.newDiGraph.to_directed_class  r2  r   c                 ó   •— ‰S r   rY   r4  s    €r   r6  zOBaseAttrGraphTester.test_directed_class.<locals>.newDiGraph.to_undirected_class  r7  r   Nr8  r9  s   €€r   r0  r<    r:  r   r0  )r1   r6  r1  rõ   r¹   r   r   )r   r   rÆ   r0  r5  s      @@r   Útest_directed_classz'BaseAttrGraphTester.test_directed_class  s„   ù€ Ø�J‰J‹Lˆ÷	 �q×,Ñ,Ó.ô 	 ÷	 ˜×,Ñ,Ó.ô 	 ð ŸM™MœO‰JŒL±³ˆØ�M‰M‹OˆÜ˜!˜ZÔ(Ð(Ð(Ø�O‰OÓˆÜ˜!˜XÔ&Ð&Ñ&r   c                 óô   — | j                   }| j                  |«       t        j                  |«      }| j	                  ||«       | j                  ||«       |j                  «       }| j                  ||«       y r   )r   r§   rD   ÚDiGraphrå   rÃ   r¹   rÒ   rÅ   s      r   Útest_to_directedz$BaseAttrGraphTester.test_to_directed%  sa   € Ø�G‰GˆØ×Ñ˜AÔÜ�J‰J�q‹MˆØ×Ñ˜Q Ô"Ø×Ñ  1Ô%Ø�M‰M‹OˆØ×Ñ˜˜AÕr   c                 ó~  — | j                   }| j                  |«       |j                  g d¢«      }| j                  ||«       | j	                  ||«       | j                  ||«       |j                  d«      }|j                  di ik(  sJ ‚|j                  g «      }|j                  i k(  sJ ‚|j                  i k7  sJ ‚y )N)r   r	   r$   rŸ   r   )r   r§   rº   r   rò   rÄ   r    rÅ   s      r   Útest_subgraphz!BaseAttrGraphTester.test_subgraph.  s§   € Ø�G‰GˆØ×Ñ˜AÔØ�J‰J’|Ó$ˆØ×Ñ˜!˜QÔØ×Ñ˜1˜aÔ Ø×"Ñ" 1 aÔ(à�J‰J�q‹MˆØ�u‰u˜˜B˜ÒÐÐØ�J‰J�r‹NˆØ�u‰u˜Š{Ðˆ{Ø�u‰u˜Š{Ð‰{r   c                 ó(  — | j                   j                  «       }|j                  dd«       |j                  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 ‚y )
Nr   r	   r$   r~   Tr"   r}   )r   r   N)r	   r	   r$   )r   r\   r7   r   rD   rƒ   r   s     r   Útest_selfloops_attrz'BaseAttrGraphTester.test_selfloops_attr<  s–   € Ø�G‰G�L‰L‹NˆØ	�
‰
�1�aÔØ	�
‰
�1�a ˆ
Ô"ÜÜ×Ñ˜a dÔ+¨q°!°R¨j¸1¸aÀ(ÈAÀÐ:OÐ-Pô
ð 	
ð 
ô Ü×Ñ˜a hÔ/°,À	Ð1Jô
ð 	
ñ 
r   N))rV   rW   rX   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?  rB  rD  rF  rY   r   r   r—   r—   Ï   sÃ   „ Ù2òFò!ò òHò
Tò
"ò	)ò	)òò &ò
&ò
0ò
6ò
0ò
)ò*ò
0ò
6ò
0ò
"ò"ò2ò('ò
ò
ò:ò
AòPò
ò"=ò<ò
4ò
!ò'ò.òó	
r   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y)Ú	TestGraphz;Tests specific to dict-of-dict-of-dict graph data structurec                 óž  — t         j                  | _        i i i }}}||dœ||dœ||dœdœ| _        g d¢| _        g d¢| _        | j                  «       | _        | j                  | j
                  _        i | j
                  _        i | j
                  j                  d<   i | j
                  j                  d<   i | j
                  j                  d<   y )	Nrd   rc   rb   rh   ra   r   r	   r$   )rD   r1   Úk3adjÚk3edgesr-   r   r'   r%   )r   Úed1Úed2Úed3s       r   Úsetup_methodzTestGraph.setup_methodK  s¢   € Ü—X‘XˆŒ
à˜R �#ˆSˆØ  SÑ)°#¸#Ñ.>ÀsÈsÑCSÑTˆŒ
Ú/ˆŒÚ ˆŒØ—*‘*“,ˆŒØ—z‘zˆ�‰ŒØˆ�‰ŒØˆ�‰�‰�aÑØˆ�‰�‰�aÑØˆ�‰�‰�aÒr   c                 ó  — | j                   }t        j                  t        j                  |d«      «      }| j	                  ||«       t        j                  t        j                  |«      «      }| j	                  ||«       y )Nr>   )r   ÚpickleÚloadsÚdumpsr   )r   r   Úpgs      r   Útest_picklezTestGraph.test_pickleY  sZ   € Ø�G‰GˆÜ�\‰\œ&Ÿ,™, q¨"Ó-Ó.ˆØ×Ñ˜"˜aÔ Ü�\‰\œ&Ÿ,™, q›/Ó*ˆØ×Ñ˜"˜aÕ r   c                 óº   — | j                  dgdgdœd¬«      }|j                  dk(  sJ ‚t        |j                  j	                  «       «      ddi ifddi ifgk(  sJ ‚y )Nr$   r	   rd   r¬   rª   )r1   r«   r+   r    Úitemsr   s     r   Útest_data_inputzTestGraph.test_data_input`  sa   € Ø�J‰J˜A˜3 A 3Ñ'¨fˆJÓ5ˆØ�v‰v˜ÒÐÐÜ�a—e‘e—k‘k“mÓ$¨!¨a°¨W¨¸¸A¸r¸7°|Ð(DÒDÐDÑDr   c                 ór   — | j                   }t        |j                  «       «      i i dœi i dœi i dœdœk(  sJ ‚y )Nrd   rc   rb   rh   )r   rj   Ú	adjacencyr   s     r   Útest_adjacencyzTestGraph.test_adjacencye  sB   € Ø�G‰GˆÜ�A—K‘K“MÓ"Ø˜"‰~Ø˜"‰~Ø˜"‰~ñ'
ò 
ð 	
ñ 
r   c                 ób  — | j                   }|j                  d   i i dœk(  sJ ‚|d   i i dœk(  sJ ‚t        j                  t        «      5  |j                  d«       d d d «       t        j                  t        «      5  |j                  dg«       d d d «       y # 1 sw Y   Œ>xY w# 1 sw Y   y xY w)Nr   rd   ÚjÚA)r   r    r2   r3   ÚKeyErrorÚ__getitem__Ú	TypeErrorr   s     r   Útest_getitemzTestGraph.test_getitemm  sœ   € Ø�G‰GˆØ�u‰u�Q‰x˜r b™>Ò)Ð)Ð)Ø�‰t˜2 "‘~Ò%Ð%Ð%Ü�]‰]œ8Ó$ñ 	Ø�M‰M˜#Ô÷	ä�]‰]œ9Ó%ñ 	!Ø�M‰M˜3˜%Ô ÷	!ð 	!÷	ð 	ú÷	!ð 	!ús   Á
BÁ=B%ÂB"Â%B.c                 ód  — | j                  «       }|j                  d«       |j                  di ik(  sJ ‚|j                  dd¬«       |j                  dd¬«       |j                  dd¬«       |j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  dd¬«       |j                  dd¬«       |j                  dd¬«       |j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚y )	Nr   r	   Úred©Úcr$   Úbluer   rf  )r1   r5   r    r,   r   s     r   Útest_add_nodezTestGraph.test_add_nodev  s*  € Ø�J‰J‹LˆØ	�
‰
�1ŒØ�u‰u˜˜B˜ÒÐÐà	�
‰
�1˜ˆ
ÔØ	�
‰
�1˜ˆ
ÔØ	�
‰
�1˜ˆ
ÔØ�w‰w�q‰z˜#‰ %Ò'Ð'Ð'Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ð(Ø�w‰w�q‰z˜#‰ %Ò'Ð'Ð'à	�
‰
�1˜ˆ
ÔØ	�
‰
�1˜ˆ
ÔØ	�
‰
�1˜ˆ
ÔØ�w‰w�q‰z˜#‰ &Ò(Ð(Ð(Ø�w‰w�q‰z˜#‰ %Ò'Ð'Ð'Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ñ(r   c                 óò  — | j                  «       }|j                  g d¢«       |j                  i i i dœk(  sJ ‚|j                  g d¢d¬«       |j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   |j                  d   usJ ‚|j                  g d¢d¬«       |j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   |j                  d   usJ ‚| j                  «       }|j                  |j                  d	¬
«      «       |j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   |j                  d   usJ ‚|j                  ddddifdddifgd¬«       |j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚|j                  d   d   dk(  sJ ‚y )Nrh   rd  re  r   rf  r$   r	   rg  Tr"   Úgreenr   Úcyan)r1   r6   r    r,   rÅ   s      r   Útest_add_nodes_fromzTestGraph.test_add_nodes_from‰  s  € Ø�J‰J‹LˆØ	×ÑšÔ#Ø�u‰u˜B 2¨"Ñ-Ò-Ð-Ð-à	×Ñš eÐÔ,Ø�w‰w�q‰z˜#‰ %Ò'Ð'Ð'Ø�w‰w�q‰z˜#‰ %Ò'Ð'Ð'à�w‰w�q‰z §¡¨¡Ñ+Ð+Ð+à	×Ñš fÐÔ-Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ð(Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ð(Ø�w‰w�q‰z §¡¨¡Ñ+Ð+Ð+à�J‰J‹LˆØ	×Ñ˜Ÿ™ d˜Ó+Ô,Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ð(Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ð(Ø�w‰w�q‰z §¡¨¡Ñ+Ð+Ð+à	×Ñ˜!˜a # w Ð0°1°s¸F°mÐ2DÐEÈÐÔOØ�w‰w�q‰z˜#‰ %Ò'Ð'Ð'Ø�w‰w�q‰z˜#‰ 'Ò)Ð)Ð)Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ð(Ø�w‰w�q‰z˜#‰ &Ò(Ð(Ñ(r   c                 ó  — | j                   j                  «       }|j                  d«       |j                  di idi idœk(  sJ ‚t	        j
                  t        j                  «      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)Nr   r$   r	   rd   r>   )r   r\   r‡   r    r2   r3   rD   rE   r   s     r   Útest_remove_nodezTestGraph.test_remove_node¥  so   € Ø�G‰G�L‰L‹NˆØ	�‰�aÔØ�u‰u˜Q ˜G¨¨B¨Ñ0Ò0Ð0Ð0Ü�]‰]œ2×+Ñ+Ó,ñ 	Ø�M‰M˜"Ô÷	÷ 	ñ 	ús   Á'BÂBc                 ó¨   — | j                   j                  «       }|j                  ddg«       |j                  di ik(  sJ ‚|j                  dg«       y rB   )r   r\   rˆ   r    r   s     r   Útest_remove_nodes_fromz TestGraph.test_remove_nodes_from®  sI   € Ø�G‰G�L‰L‹NˆØ	×Ñ˜Q ˜FÔ#Ø�u‰u˜˜B˜ÒÐÐØ	×Ñ˜R˜DÕ!r   c                 ó†  — | j                  «       }|j                  dd«       |j                  di idi idœk(  sJ ‚| j                  «       } |j                  dŽ  |j                  di idi idœk(  sJ ‚| j                  «       }t        j                  t
        «      5  |j                  d d«       d d d «       y # 1 sw Y   y xY w)Nr   r	   rb   Úanything)r1   r7   r    r2   r3   r4   r   s     r   Útest_add_edgezTestGraph.test_add_edge´  s¬   € Ø�J‰J‹LˆØ	�
‰
�1�aÔØ�u‰u˜Q ˜G¨¨B¨Ñ0Ò0Ð0Ð0Ø�J‰J‹LˆØˆ�
‰
�FÑØ�u‰u˜Q ˜G¨¨B¨Ñ0Ò0Ð0Ð0Ø�J‰J‹LˆÜ�]‰]œ:Ó&ñ 	)Ø�J‰J�t˜ZÔ(÷	)÷ 	)ñ 	)ús   ÂB7Â7C c                 óv  — | j                  «       }|j                  dddddifg«       |j                  i ddidœdi idddiidœk(  sJ ‚| j                  «       }|j                  dddddifddd	d
ifgd¬«       |j                  d	didddœdœd	did	d
idœdddœd	d
idœdœk(  sJ ‚t        j                  t
        j                  «      5  |j                  dg«       d d d «       t        j                  t
        j                  «      5  |j                  dg«       d d d «       t        j                  t        «      5  |j                  dg«       d d d «       t        j                  t        «      5  |j                  ddg«       d d d «       y # 1 sw Y   Œ±xY w# 1 sw Y   ŒxY w# 1 sw Y   ŒWxY w# 1 sw Y   y xY w)Nrb   r   r$   r}   r   rd   rh   r	   r#   r
   r"   )r}   r#   rc   )r   r  r   )r   r$   )	r1   r8   r    r2   r3   rD   rE   ra  r4   r   s     r   Útest_add_edges_fromzTestGraph.test_add_edges_from¿  sÊ  € Ø�J‰J‹LˆØ	×Ñ˜& 1 a¨(°A¨Ð"7Ð8Ô9Ø�u‰uØ˜8 Q˜-Ñ(Ø�2ˆwØ�H˜a�=Ð!ñ
ò 
ð 	
ð 
ð
 �J‰J‹LˆØ	×Ñ˜& 1 a¨(°A¨Ð"7¸!¸QÀÈÀÐ9LÐMÐTUÐÔVØ�u‰uØ˜A�;¨a¸Ñ#;Ñ<Ø˜A�; F¨A ;Ñ/Ø¨Ñ+°¸°Ñ<ñ
ò 
ð 	
ð 
ô �]‰]œ2×+Ñ+Ó,ñ 	%Ø×Ñ˜d˜VÔ$÷	%ä�]‰]œ2×+Ñ+Ó,ñ 	-Ø×Ñ˜l˜^Ô,÷	-ä�]‰]œ9Ó%ñ 	"Ø×Ñ˜a˜SÔ!÷	"ä�]‰]œ:Ó&ñ 	2Ø×Ñ˜i¨Ð0Ô1÷	2ð 	2÷	%ð 	%ú÷	-ð 	-ú÷	"ð 	"ú÷	2ð 	2ús0   ÃFÄFÄ:F#Å.F/ÆFÆF Æ#F,Æ/F8c                 ó(  — | j                   j                  «       }|j                  dd«       |j                  di idi ii i dœdœk(  sJ ‚t	        j
                  t        j                  «      5  |j                  dd«       d d d «       y # 1 sw Y   y xY w)Nr   r	   r$   rb   rh   r>   )r   r\   r…   r    r2   r3   rD   rE   r   s     r   Útest_remove_edgezTestGraph.test_remove_edgeØ  sy   € Ø�G‰G�L‰L‹NˆØ	�‰�a˜ÔØ�u‰u˜Q ˜G¨¨B¨¸¸r±NÑCÒCÐCÐCÜ�]‰]œ2×+Ñ+Ó,ñ 	!Ø�M‰M˜"˜aÔ ÷	!÷ 	!ñ 	!ús   Á,BÂBc                 ó¸   — | j                   j                  «       }|j                  dg«       |j                  di idi ii i dœdœk(  sJ ‚|j                  dg«       y )Nrb   r$   rh   r�   )r   r\   r†   r    r   s     r   Útest_remove_edges_fromz TestGraph.test_remove_edges_fromß  sV   € Ø�G‰G�L‰L‹NˆØ	×Ñ˜V˜HÔ%Ø�u‰u˜Q ˜G¨¨B¨¸¸r±NÑCÒCÐCÐCØ	×Ñ˜V˜HÕ%r   c                 óî   — | j                   j                  «       }d|j                  d<   |j                  «        t	        |j
                  «      g k(  sJ ‚|j                  i k(  sJ ‚|j                  i k(  sJ ‚y )Nr   r«   )r   r\   r¥   Úclearrt   r,   r    r   s     r   Ú
test_clearzTestGraph.test_clearå  s]   € Ø�G‰G�L‰L‹NˆØˆ�‰�‰Ø	�‰Œ	Ü�A—G‘G‹} Ò"Ð"Ð"Ø�u‰u˜Š{Ðˆ{Ø�w‰w˜"Š}Ð‰}r   c                 óZ  — | j                   j                  «       }d|j                  d<   t        |j                  «      }|j                  «        t        |j                  «      |k(  sJ ‚|j                  i i i dœk(  sJ ‚t        |j                  «      g k(  sJ ‚|j                  d   dk(  sJ ‚y )Nr   r«   rh   )r   r\   r¥   rt   r,   Úclear_edgesr    re   )r   r   r,   s      r   Útest_clear_edgeszTestGraph.test_clear_edgesí  s�   € Ø�G‰G�L‰L‹NˆØˆ�‰�‰Ü�Q—W‘W“ˆØ	�‰ŒÜ�A—G‘G‹} Ò%Ð%Ð%Ø�u‰u˜B 2¨"Ñ-Ò-Ð-Ð-Ü�A—G‘G‹} Ò"Ð"Ð"Ø�w‰w�v‰ $Ò&Ð&Ñ&r   c                 ó˜  — | j                   }ddi fddi fddi fg}t        |j                  d¬«      |«      sJ ‚t        |j                  dd¬«      ddi fddi fg«      sJ ‚t        |j                  ddgd¬«      |«      sJ ‚t        j                  t
        j                  «      5  |j                  dd«       d d d «       y # 1 sw Y   y xY w)Nr   r	   r$   Tr"   r>   )r   r   re   r2   r3   rD   rE   )r   r   Ú	all_edgess      r   Útest_edges_datazTestGraph.test_edges_data÷  sÈ   € Ø�G‰GˆØ˜˜B�Z ! Q¨ ¨a°°B¨ZÐ8ˆ	Ü˜1Ÿ7™7¨˜7Ó-¨yÔ9Ð9Ð9Ü˜1Ÿ7™7 1¨4˜7Ó0°A°q¸"°:ÀÀ1Àb¸zÐ2JÔKÐKÐKÜ˜1Ÿ7™7 A q 6°˜7Ó5°yÔAÐAÐAÜ�]‰]œ2×+Ñ+Ó,ñ 	Ø�G‰G�B˜Ô÷	÷ 	ñ 	ús   Â$C Ã C	c                 ó  — | j                   j                  «       }|j                  dd«      i k(  sJ ‚|d   d   i k(  sJ ‚|j                  dd«      �J ‚|j                  dd«      �J ‚|j                  ddd¬«      dk(  sJ ‚y )Nr   r	   r  r  r>   )r  )r   r\   Úget_edge_datar   s     r   Útest_get_edge_datazTestGraph.test_get_edge_data   s‰   € Ø�G‰G�L‰L‹NˆØ�‰˜q !Ó$¨Ò*Ð*Ð*Ø�‰t�A‰w˜"Š}Ðˆ}Ø�‰˜r 2Ó&Ð.Ð.Ð.Ø�‰˜r 1Ó%Ð-Ð-Ð-Ø�‰˜r 1¨aˆÓ0°AÒ5Ð5Ñ5r   c                 ó²  — | j                   j                  «       }|j                  ddddifgdddddifg¬	«       d
i fdi fdi fdi fdddifdi fdi fdi fg}t        |j                  j                  «       «      |k(  sJ ‚|j                  «       r%d
di fd
di fdd
i fddi fdd
i fddi fddi fddddifg}nd
di fd
di fddi fddi fddddifg}t        |j                  j                  «       «      |k(  sJ ‚|j                  i k(  sJ ‚| j                   j                  «       }|j                  dddddifgddddifg«       t        |j                  j                  «       «      |k(  sJ ‚t        |j                  j                  «       «      |k(  sJ ‚|j                  i k(  sJ ‚| j                  «       }d|j                  d<   |j                  dd¬«       |j                  d
dd¬«       |j                  «       }| j                  «       }|j                  |«       t        ||«      sJ ‚|j                  |«       t        ||«      sJ ‚| j                  «       }|j                  ddg¬«       |j                  ddhz  t        «       k(  sJ ‚|j                  «       d
k(  sJ ‚| j                  «       }|j                  dg¬«       t        |j                  j                  «       «      ddi fgk(  sJ ‚|j                  «       dk(  sJ ‚t        j                   t"        j$                  «      5  t#        j                  «       j                  «        d d d «       y # 1 sw Y   y xY w)Nr   r
   rm   r$   )r
   rŸ   é   r¡   r}   )r,   re   r   r	   rŸ   rù   rq   r"   g      à?r~   )r,   r  )re   )r   r\   Úupdater+   r,   r#   rõ   re   r¥   r1   r5   r7   r   ry   rm   r2   r3   rD   rE   )r   r   ÚnlistÚelistÚGGrÆ   s         r   Útest_updatezTestGraph.test_update  sU  € à�G‰G�L‰L‹NˆØ	�‰˜˜A ¨˜{Ð+Ð,°V¸aÀÀXÈqÀMÐ=RÐ4SˆÔTà�ˆGØ�ˆGØ�ˆGØ�ˆGØ�˜�ÐØ�ˆGØ�ˆGØ�ˆGð	
ˆô �a—g‘g—l‘l“nÓ%¨Ò.Ð.Ð.Ø�=‰=Œ?à�A�r�
Ø�A�r�
Ø�A�r�
Ø�A�r�
Ø�A�r�
Ø�A�r�
Ø�A�r�
Ø�A˜ !�}Ð%ð	‰Eð �A�r�
Ø�A�r�
Ø�A�r�
Ø�A�r�
Ø�A˜ !�}Ð%ðˆEô �a—g‘g—l‘l“nÓ%¨Ò.Ð.Ð.Ø�w‰w˜"Š}Ðˆ}ð �G‰G�L‰L‹NˆØ	�‰�&˜1˜a (¨A Ð/Ð0°1°q¸6À1¸+Ð6FÐ2GÔHÜ�a—g‘g—l‘l“nÓ%¨Ò.Ð.Ð.Ü�a—g‘g—l‘l“nÓ%¨Ò.Ð.Ð.Ø�w‰w˜"Š}Ðˆ}ð �J‰J‹LˆØˆ�‰�‰Ø	�
‰
�1˜1ˆ
ÔØ	�
‰
�1�a ˆ
Ô$Ø�V‰V‹XˆØ�J‰J‹LˆØ
�	‰	�!ŒÜ˜A˜rÔ"Ð"Ð"Ø	�‰�ŒÜ˜A˜qÔ!Ð!Ð!ð �J‰J‹LˆØ	�‰˜˜1�vˆÔØ�w‰w˜!˜Q˜Ñ¤3£5Ò(Ð(Ð(Ø�v‰v‹x˜1Š}Ðˆ}ð �J‰J‹LˆØ	�‰˜�xˆÔ Ü�a—g‘g—l‘l“nÓ%¨1¨a°¨*¨Ò5Ð5Ð5Ø�v‰v‹x˜1Š}Ðˆ}ô �]‰]œ2×+Ñ+Ó,ñ 	 Ü�H‰H‹J×ÑÔ÷	 ÷ 	 ñ 	 ús   Ì!#MÍMN)rV   rW   rX   r‘   rO  rU  rX  r[  rb  rh  rl  rn  rp  rs  ru  rw  ry  r|  r  r‚  r…  rŒ  rY   r   r   rH  rH  H  sa   „ ÙEòò!òEò

ò!ò)ò&)ò8ò"ò	)ò2ò2!ò&òò'òò6óF r   rH  c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestEdgeSubgraphz6Unit tests for the :meth:`Graph.edge_subgraph` method.c                 ó  — t        j                  d«      }t        d«      D ]  }d|› �|j                  |   d<   Œ d|j                  d   d<   d|j                  d   d<   d|j
                  d<   || _        |j                  ddg«      | _        y )	NrŸ   Únoder«   Úedge01rb   Úedge34r  r¥   )	rD   r%  Úranger,   re   r¥   r   Úedge_subgraphrÆ   )r   r   Úis      r   rO  zTestEdgeSubgraph.setup_methodT  sˆ   € ä�M‰M˜!Óˆä�q“ò 	,ˆAØ#'¨ s ˆA�G‰G�A‰J�vÒð	,à (ˆ�‰�‰�fÑØ (ˆ�‰�‰�fÑØ!ˆ�‰�‰àˆŒØ—‘ &¨&Ð!1Ó2ˆ�r   c                 óX   — g d¢t        | j                  j                  «       «      k(  sJ ‚y)z.Tests that the subgraph has the correct nodes.©r   r	   r   r
   N)r+   rÆ   r,   ©r   s    r   Útest_correct_nodesz#TestEdgeSubgraph.test_correct_nodesa  s   € âœv d§f¡f§l¡l£nÓ5Ò5Ð5Ñ5r   c                 ó\   — ddgt        | j                  j                  d¬«      «      k(  sJ ‚y)z.Tests that the subgraph has the correct edges.)r   r	   r‘  )r   r
   r’  r«   r"   N)r+   rÆ   re   r˜  s    r   Útest_correct_edgesz#TestEdgeSubgraph.test_correct_edgese  s+   € à Ð"2Ð3´v¸d¿f¹f¿l¹lÐPV¸lÓ>WÓ7XÒXÐXÑXr   c                 óŽ   — | j                   j                  d«       g d¢t        | j                  j	                  «       «      k(  sJ ‚y)zkTests that adding a node to the original graph does not
        affect the nodes of the subgraph.

        rŸ   r—  N)r   r5   r+   rÆ   r,   r˜  s    r   rh  zTestEdgeSubgraph.test_add_nodei  s1   € ð
 	�‰�‰˜ÔÚœv d§f¡f§l¡l£nÓ5Ò5Ð5Ñ5r   c                 óŽ   — | j                   j                  d«       g d¢t        | j                  j	                  «       «      k(  sJ ‚y)ziTests that removing a node in the original graph does
        affect the nodes of the subgraph.

        r   )r	   r   r
   N)r   r‡   r+   rÆ   r,   r˜  s    r   rn  z!TestEdgeSubgraph.test_remove_nodeq  s3   € ð
 	�‰×Ñ˜1ÔÚœF 4§6¡6§<¡<£>Ó2Ò2Ð2Ñ2r   c                 óÔ  — | j                   D ]7  }| j                  j                  |   | j                   j                  |   k(  rŒ7J ‚ d| j                  j                  d   d<   | j                  j                  d   | j                   j                  d   k(  sJ ‚d| j                   j                  d   d<   | j                  j                  d   | j                   j                  d   k(  sJ ‚y)z`Tests that the node attribute dictionary of the two graphs is
        the same object.

        rq   r   r«   rù   r	   N)rÆ   r   r,   )r   r  s     r   Útest_node_attr_dictz$TestEdgeSubgraph.test_node_attr_dicty  s·   € ð
 —‘ò 	6ˆAØ—6‘6—<‘< ‘? d§f¡f§l¡l°1¡oÓ5Ð5Ð5ð	6ð #(ˆ�‰�‰�Q‰˜ÑØ�v‰v�|‰|˜A‰ $§&¡&§,¡,¨q¡/Ò1Ð1Ð1Ø"'ˆ�‰�‰�Q‰˜ÑØ�v‰v�|‰|˜A‰ $§&¡&§,¡,¨q¡/Ò1Ð1Ñ1r   c                 ó  — | j                   j                  «       D ]>  \  }}| j                  j                  ||f   | j                   j                  ||f   k(  rŒ>J ‚ d| j                  j                  d   d<   | j                  j                  d   d   | j                   j                  d   d   k(  sJ ‚d| j                   j                  d   d<   | j                  j                  d   d   | j                   j                  d   d   k(  sJ ‚y)z`Tests that the edge attribute dictionary of the two graphs is
        the same object.

        rq   rb   r«   rù   r  N)rÆ   re   r   )r   rÿ   r  s      r   Útest_edge_attr_dictz$TestEdgeSubgraph.test_edge_attr_dict†  så   € ð
 —F‘F—L‘L“Nò 	<‰DˆAˆqØ—6‘6—<‘<  1 Ñ%¨¯©¯©°a¸°dÑ);Ó;Ð;Ð;ð	<ð &+ˆ�‰�‰�TÑ˜6Ñ"Ø�v‰v�|‰|˜DÑ! &Ñ)¨T¯V©V¯\©\¸$Ñ-?ÀÑ-GÒGÐGÐGØ%*ˆ�‰�‰�TÑ˜6Ñ"Ø�v‰v�|‰|˜DÑ! &Ñ)¨T¯V©V¯\©\¸$Ñ-?ÀÑ-GÒGÐGÑGr   c                 ó`   — | j                   j                  | j                  j                  u sJ ‚y)zaTests that the graph attribute dictionary of the two graphs
        is the same object.

        N)r   r¥   rÆ   r˜  s    r   Útest_graph_attr_dictz%TestEdgeSubgraph.test_graph_attr_dict“  s"   € ð
 �v‰v�|‰|˜tŸv™vŸ|™|Ñ+Ð+Ñ+r   N)rV   rW   rX   r‘   rO  r™  r›  rh  rn  rŸ  r¡  r£  rY   r   r   rŽ  rŽ  Q  s/   „ Ù@ò3ò6òYò6ò3ò2òHó,r   rŽ  )rQ   rQ  r”   rL   r2   ÚnetworkxrD   Únetworkx.utilsr   r   r   r   r—   rH  rŽ  rY   r   r   ú<module>r¦     sU   ðÛ 	Û Û Û ã ã ß AÑ A÷@&ñ @&ôFv
˜/ô v
ôrF Ð#ô F ÷RG,ò G,r   