Ë
    Ìi6|  ã                   ó¨   — 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
 d„ Z G d„ d«      Z G d„ de«      Z G d„ d	e«      Z G d
„ d«      Zd„ Zy)é    N)Úedges_equalÚgraphs_equalÚnodes_equalc                  óÄ   — t        j                  d«      } t        j                  t         j                  d¬«      5  | j                  d«       ddd«       y# 1 sw Y   yxY w)zSee gh-7740é   zNode.*is not in the graph©Úmatchéd   N)ÚnxÚ
path_graphÚpytestÚraisesÚNetworkXErrorÚdegree)ÚGs    úb/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/networkx/classes/tests/test_graph.pyÚ,test_degree_node_not_found_exception_messager      sE   € ä
�‰�aÓ€AÜ	�‰”r×'Ñ'Ð/JÔ	Kñ Ø	�‰�Œ÷÷ ñ ús   »AÁAc                   óÚ   — 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©Úselfr   s     r   Ú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)ÚGraphr   r   Ú
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_node9   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_edge@   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   r0   rH   )r   r7   Ú	neighborsr   r   r   r   r   s     r   Útest_neighborszBaseGraphTester.test_neighborsE   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>Z   s2   øè ø€ ò àÜ! #¤w×'9Ñ'9Ô:¼zÈ#ÈuÔ?Uô ñùs   ƒ25)ÚsumÚgcÚget_objects)rW   s   `r   Úcount_objects_of_typez?BaseGraphTester.test_memory_leak.<locals>.count_objects_of_typeQ   s&   ø€ ô ó äŸ>™>Ó+ôó ð r   c                   ó   — e Zd Zy)ú1BaseGraphTester.test_memory_leak.<locals>.MyGraphN)Ú__name__Ú
__module__Ú__qualname__© r   r   ÚMyGraphr]   h   s   „ Ør   rb   )r=   rY   ÚcollectÚcopy)r   r   r[   ÚbeforeÚafterrb   s         r   Útest_memory_leakz BaseGraphTester.test_memory_leakK   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   r0   ©r   r0   r   rj   rk   r   rH   )
r   r)   r3   r4   r   Úedgesr   r   r   r   r   s     r   Ú
test_edgeszBaseGraphTester.test_edgess   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)rk   rl   )r0   r0   r0   ©r   r   r0   r   rH   )r   r7   r   Údictr   r   r   r   r   s     r   Útest_degreezBaseGraphTester.test_degree|   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   rH   Úfoozis not in the graphr   r0   z&in sequence nbunch is not a valid node)	r   r   Únbunch_iterr9   r   r   r   r   Ú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×+Ñ+Ð3HÔIñ 	Ü�Œ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)r=   Úsetr   r   r   r   rz   ry   )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   rl   r0   Úweight©rƒ   )r=   rA   r7   r   rq   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   rd   rA   r   r   Ú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   rd   r,   Úidr3   r8   r1   )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   rd   r‘   r8   rm   r   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)r^   r_   r`   Ú__doc__r   r%   r:   rC   rF   rJ   rN   r   ÚmarkÚskipifÚplatformÚpython_implementationrg   rn   rr   rv   r|   r�   r…   r�   r”   r–   ra   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   r0   r!   )rƒ   Úotherr   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr(   ra   ©r+   ÚnÚds      r   r-   z;BaseAttrGraphTester.test_weighted_degree.<locals>.<genexpr>Ý   s   è ø€ Ò>™D˜A˜q”aÑ>ùó   ‚rƒ   r„   )r0   r!   r   r   )r   r0   r!   rl   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr(   ra   r¡   s      r   r-   z;BaseAttrGraphTester.test_weighted_degree.<locals>.<genexpr>â   s   è ø€ ÒC¡$ ! QœAÑCùr¤   rŸ   )r!   é   r   r¦   )r   r!   )r=   rA   r7   r   rq   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 )Nrx   r   r   r0   ©rx   )Úgraphr8   r‹   rA   )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)r=   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 )Nrl   ©r0   r!   z with 3 nodes and 2 edges©r=   rB   ÚstrÚtyper^   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 )Nrx   r¯   rl   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 )	Nrj   rl   T©Úas_viewr   r   F)rd   )r=   Ú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   r0   )r=   r?   rA   r¬   rd   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Ç   )r=   r?   rA   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Ç   )r=   r?   rA   r¬   rÎ   r@   rB   rm   r"   r8   Ú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_attrdict3  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 ©Nrx   r   ©rª   ÚappendrÖ   s      r   rÙ   z'BaseAttrGraphTester.deepcopy_graph_attr8  ó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   rx   r   ©r8   rß   rÖ   s      r   rÚ   z&BaseAttrGraphTester.deepcopy_node_attr=  ó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   r0   rx   ©rß   rÖ   s      r   rÛ   z&BaseAttrGraphTester.deepcopy_edge_attrB  ó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_copyG  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_attrdictK  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_attrP  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_attrU  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_attrZ  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   r0   rx   Úbazr   )r,   rm   r8   ©r   rË   r   Úold_foos       r   Úsame_attrdictz!BaseAttrGraphTester.same_attrdict_  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,   r3   r8   r1   rõ   s       r   rÈ   z&BaseAttrGraphTester.different_attrdictl  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   r0   )r3   r1   rª   r°   Úis_directedÚ_predÚ_succrÖ   s      r   r   z BaseAttrGraphTester.graphs_equaly  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Úbarrx   r©   )r   rd   rª   r)   Úgraph_attr_dict_factoryr=   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.   rp   r   rx   r0   rô   )r<   ©r   rô   )r0   N)r/   Údefault))r   rþ   r  )r0   rþ   )r   rd   r?   r5   r8   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 )Nrx   rþ   r!   ©r   r   r0   r!   Tr.   r   r   r0   )r!   )r   rd   r?   r   r8   )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   r0   rþ   r©   rl   rx   )r=   rA   r   rm   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   r0   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.   rx   )r   r0   rþ   )r=   rA   r5   rm   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 )Nrl   ©r!   r   rx   r©   Tr.   r   r0   r!   r   )r   r0   rx   )r!   r   rx   )r=   rB   r   rm   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   r0   rƒ   é    r!   r   é@   rx   r©   Tr.   )rx   rƒ   rl   r  r¦   rþ   ©r/   Úspamrþ   )r=   rB   r   rm   rŒ   rA   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   r0   r¦   rþ   rx   r  Tr.   é
   r/   é   é   rl   éÈ   Úlistdatarƒ   )r/   r  rþ   r!  rƒ   )r=   rA   r   rm   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¬   r   r=   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 ©Nr0   )Úcreate_usingTr¼   r   r   rH   )r   r   r=   r¾   rÁ   rI   rú   r   r   r   r?   rA   ©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(  )r   r   r=   r%  rÁ   rI   r   r   r   r?   rA   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(   ra   ©r   Ú
newDiGraphs    €r   Úto_directed_classzKBaseAttrGraphTester.test_directed_class.<locals>.newGraph.to_directed_class  ó	   ø€ Ø!Ð!r   c                 ó   •— ‰S r(   ra   ©r   ÚnewGraphs    €r   Úto_undirected_classzMBaseAttrGraphTester.test_directed_class.<locals>.newGraph.to_undirected_class  ó   ø€ Ø�r   N©r^   r_   r`   r5  r:  ©r4  r9  s   €€r   r9  r1    ó   ø„ ô"õ r   r9  c                   ó"   •— e Zd Zˆ fd„Zˆfd„Zy)ú;BaseAttrGraphTester.test_directed_class.<locals>.newDiGraphc                 ó   •— ‰S r(   ra   r3  s    €r   r5  zMBaseAttrGraphTester.test_directed_class.<locals>.newDiGraph.to_directed_class   r6  r   c                 ó   •— ‰S r(   ra   r8  s    €r   r:  zOBaseAttrGraphTester.test_directed_class.<locals>.newDiGraph.to_undirected_class#  r;  r   Nr<  r=  s   €€r   r4  r@    r>  r   r4  )r=   r:  r5  rú   r¾   r)   r%  )r   r   rË   r4  r9  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¬   r   Ú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   r0   r   r   )r   r¬   r¿   r   r÷   rÉ   r,   rÊ   s      r   Útest_subgraphz!BaseAttrGraphTester.test_subgraph5  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   r0   r„   Tr.   rƒ   )r   r   N)r   r   r0   )r   rd   rA   r   r   r‰   r   s     r   Útest_selfloops_attrz'BaseAttrGraphTester.test_selfloops_attrC  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))r^   r_   r`   r—   r§   r¬   r²   r¸   rº   rÅ   rÌ   rÏ   rÓ   r×   rÕ   rÙ   rÚ   rÛ   rê   rÉ   rì   rí   rî   r÷   rÈ   r   r   r  r  r  r  r  r  r#  r&  r,  r.  rC  rF  rH  rJ  ra   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 )	Nrl   rk   rj   rp   ri   r   r   r0   )r   r=   Úk3adjÚk3edgesr9   r   r3   r1   )r   Úed1Úed2Úed3s       r   Úsetup_methodzTestGraph.setup_methodR  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 )NrH   )r   ÚpickleÚloadsÚdumpsr   )r   r   Úpgs      r   Útest_picklezTestGraph.test_pickle`  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 )Nr0   r   rl   r±   r¯   )r=   r°   r7   r,   Úitemsr   s     r   Útest_data_inputzTestGraph.test_data_inputg  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 )Nrl   rk   rj   rp   )r   rq   Ú	adjacencyr   s     r   Útest_adjacencyzTestGraph.test_adjacencyl  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   rl   ÚjÚA)r   r,   r   r   ÚKeyErrorÚ__getitem__Ú	TypeErrorr   s     r   Útest_getitemzTestGraph.test_getitemt  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©Úcr0   Úbluer!   rj  )r=   r?   r,   r8   r   s     r   Útest_add_nodezTestGraph.test_add_node}  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 )Nrp   rh  ri  r   rj  r0   r   rk  Tr.   Úgreenr!   Úcyan)r=   r@   r,   r8   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   r0   r   rl   rH   )r   rd   r�   r,   r   r   r   r   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 rL   )r   rd   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   rj   Úanything)r=   rA   r,   r   r   r>   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)Nrj   r   r0   rƒ   r!   rl   rp   r   r/   r   r.   )rƒ   r/   rk   )r   r	  r    )r!   r0   )	r=   rB   r,   r   r   r   r   re  r>   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   r0   rj   rp   rH   )r   rd   r‹   r,   r   r   r   r   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 )Nrj   r0   rp   r‡   )r   rd   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   rd   rª   Úclearrz   r8   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°   rp   )r   rd   rª   rz   r8   Úclear_edgesr,   rm   )r   r   r8   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   r0   Tr.   rH   )r   r   rm   r   r   r   r   )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  rH   )r  )r   rd   Ú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   rt   r0   )r   r   é   r¦   rƒ   )r8   rm   r   r   r   rþ   rx   r.   g      à?r„   )r8   r  )rm   )r   rd   Úupdater7   r8   r/   rú   rm   rª   r=   r?   rA   r   r   rt   r   r   r   r   )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)r^   r_   r`   r—   rS  rY  r\  r_  rf  rl  rp  rr  rt  rw  ry  r{  r}  r€  rƒ  r†  r‰  r�  ra   r   r   rL  rL  O  sa   „ ÙEòò!òEò

ò!ò)ò&)ò8ò"ò	)ò2ò2!ò&òò'òò6óF r   rL  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°   Úedge01rj   Úedge34r  rª   )	r   r   Úranger8   rm   rª   r   Úedge_subgraphrË   )r   r   Úis      r   rS  zTestEdgeSubgraph.setup_method[  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)r7   rË   r8   ©r   s    r   Útest_correct_nodesz#TestEdgeSubgraph.test_correct_nodesh  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)r7   rË   rm   rœ  s    r   Útest_correct_edgesz#TestEdgeSubgraph.test_correct_edgesl  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   r?   r7   rË   r8   rœ  s    r   rl  zTestEdgeSubgraph.test_add_nodep  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�   r7   rË   r8   rœ  s    r   rr  z!TestEdgeSubgraph.test_remove_nodex  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.

        rx   r   r°   rþ   r   N)rË   r   r8   )r   r  s     r   Útest_node_attr_dictz$TestEdgeSubgraph.test_node_attr_dict€  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.

        rx   rj   r°   rþ   r  N)rË   rm   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)r^   r_   r`   r—   rS  r�  rŸ  rl  rr  r£  r¥  r§  ra   r   r   r’  r’  X  s/   „ Ù@ò3ò6òYò6ò3ò2òHó,r   r’  c                  óZ  —  G d„ dt         j                  «      }  | d¬«      }|j                  dk(  sJ ‚ | g d«      }|j                  dk(  sJ ‚ | dgdd¬«      }|j                  dk(  sJ ‚|j                  d	   dk(  sJ ‚t         j                  j                  |j                  dg«      sJ ‚y
)zuTest that subclasses can accept additional arguments.

    See: https://github.com/networkx/networkx/issues/8367
    c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ú*test_graph_new_extra_args.<locals>.MyGraphc                 ó4   •— t        ‰| �  |fi |¤Ž || _        y r(   )ÚsuperÚ__init__Ú	extra_arg)r   Úincoming_graph_datar®  ÚattrrÎ   s       €r   r­  z3test_graph_new_extra_args.<locals>.MyGraph.__init__©  s   ø€ Ü‰GÑÐ0Ñ9°DÒ9Ø&ˆD�Nr   )NN)r^   r_   r`   r­  Ú__classcell__)rÎ   s   @r   rb   rª  ¨  s   ø„ ÷	'ñ 	'r   rb   z	extra arg)r®  rj   rx   rþ   )r®  r°   r°   N)r   r=   r®  rª   Úutilsr   rm   )rb   r   s     r   Útest_graph_new_extra_argsr³  ¢  s¦   € ô'”"—(‘(ô 'ñ
 	˜+Ô&€AØ�;‰;˜+Ò%Ð%Ð%á��KÓ €AØ�;‰;˜+Ò%Ð%Ð%á�� E°Ô6€AØ�;‰;˜%ÒÐÐØ�7‰7�6‰?˜eÒ#Ð#Ð#Ü�8‰8×Ñ §¡¨&¨Ô2Ð2Ñ2r   )rY   rU  rš   rT   r   Únetworkxr   Únetworkx.utilsr   r   r   r   r   r�   rL  r’  r³  ra   r   r   ú<module>r¶     s`   ðÛ 	Û Û Û ã ã ß AÑ Aò÷@&ñ @&ôFv
˜/ô v
ôrF Ð#ô F ÷RG,ñ G,óT3r   