+
    �°³j@S  ã                   ó`  € R t ^ RIt^ RIt ! R R4      t ! R R4      t]P                  P                  R]P                  ]P                  ]P                  ]P                  .4      R 4       t ! R R	4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )z8
Unit tests for dedensification and graph summarization
Nc                   ód   a € ] tR t^
t o R tR tR t]RR l4       tR t	R t
R tR tR	 tR
tV tR# )ÚTestDirectedDedensificationc                ó    € RRR. RO3RR	RR.3RR.3.p\         P                  ! 4       pV F  w  r4V F  pVP                  W54       K  	  K!  	  V# )
Ú1Ú3ÚAÚ6Ú5©r   ÚBC©Ú2ÚABC©r   ÚBr   ©Ú4r   ©r	   ÚAB©ÚnxÚDiGraphÚadd_edge©ÚselfÚoriginal_matrixÚgraphÚsourceÚtargetsÚtargets   &     Úm/home/luca/screen-checking/.venv/lib/python3.14/site-packages/networkx/algorithms/tests/test_summarization.pyÚbuild_original_graphÚ0TestDirectedDedensification.build_original_graph   se   € àØØ’/Ð"ØØØ�3�%ˆLØ�3�%ˆLð
ˆô —
’
“ˆÛ.‰OˆFÛ!�Ø—‘˜vÖ.ó "ñ  /ð ˆó    c                ó®   € RRR.3R. R	O3RR.3R
RR.3RR.3R.p\         P                  ! 4       pV F  w  r4V F  pVP                  W54       K  	  K!  	  V# )r   r   r   r   r   r   r   r	   r
   r   r   )r   r   r   ©r   Úcompressed_matrixÚcompressed_graphr   r   r   s   &     r    Úbuild_compressed_graphÚ2TestDirectedDedensification.build_compressed_graph   sy   € àØ�5�'ˆNØ’/Ð"Ø�5�'ˆNØØ�3�%ˆLØ�3�%ˆLØð	
Ðô Ÿ:š:›<ÐÛ0‰OˆFÛ!�Ø ×)Ñ)¨&Ö9ó "ñ  1ð  Ðr#   c                ó†   € \         P                  ! 4       p\         P                  ! V^R7      w  r#V\        4       8X  g   Q hR# )zD
Verify that an empty directed graph results in no compressor nodes
©Ú	thresholdN)r   r   Ú	dedensifyÚset)r   ÚGr'   Úc_nodess   &   r    Ú
test_emptyÚ&TestDirectedDedensification.test_empty,   s3   € ô �JŠJ‹LˆÜ$&§L¢L°¸aÔ$@Ñ!ÐØœ#›%ÔÐÒr#   c                óˆ  € V'       d   V P                  4       p V F£  p\        \        P                  ! W4      4      p\        V P	                  V4      4      pV F  pV P                  W64       K  	  WE,
          pV F.  pV P                  Wƒ4       V F  pV P                  W†4       K  	  K0  	  V P                  V4       K¥  	  V # )an  
Reconstructs the original graph from a dedensified, directed graph

Parameters
----------
G: dedensified graph
   A networkx graph
compressor_nodes: iterable
   Iterable of compressor nodes in the dedensified graph
inplace: bool, optional (default: False)
   Indicates if densification should be done inplace

Returns
-------
G: graph
   A densified networkx graph
)Úcopyr.   r   Úall_neighborsÚ	neighborsÚremove_edger   Úremove_node)	r/   Úcompressor_nodesr4   Úcompressor_noder5   Úout_neighborsÚout_neighborÚin_neighborsÚin_neighbors	   &&&      r    ÚdensifyÚ#TestDirectedDedensification.densify4   s£   € ÷& Ø—‘“ˆAÛ/ˆOÜ¤× 0Ò 0°Ó DÓEˆMÜ §¡¨OÓ <Ó=ˆMÛ -�Ø—‘˜oÖ<ñ !.à(Õ8ˆLÛ+�Ø—‘˜kÔ;Û$1�LØ—J‘J˜{Ö9ó %2ñ  ,ð �M‰M˜/Ö*ñ  0ð ˆr#   c                ó   € RV n         R# )r   N)r   ©r0   ©r   s   &r    Úsetup_methodÚ(TestDirectedDedensification.setup_methodV   s	   € ØˆŽr#   c                ó²  € V P                  4       pV P                  4       p\        P                  ! V^R7      w  r4VP	                  4        Fc  w  rVRP                  \        V4      4      pRP                  \        V4      4      pVP                  WV4      p	VP                  Wx4      p
Wš8X  d   Kc  Q h	  \        V4      \        V P                  4      8X  g   Q hR# )za
Verifies that dedensify produced the correct edges to/from compressor
nodes in a directed graph
r+   Ú N)
r!   r(   r   r-   ÚedgesÚjoinÚsortedÚhas_edgeÚlenr0   )r   r/   Úcompressed_Gr'   r0   ÚsÚtÚo_sÚo_tÚcompressed_graph_existsÚverified_compressed_existss   &          r    Útest_dedensify_edgesÚ0TestDirectedDedensification.test_dedensify_edgesY   s¸   € ð
 ×%Ñ%Ó'ˆØ×2Ñ2Ó4ˆÜ$&§L¢L°¸aÔ$@Ñ!ÐØ$×*Ñ*Ö,‰DˆAØ—'‘'œ& ›)Ó$ˆCØ—'‘'œ& ›)Ó$ˆCØ&6×&?Ñ&?ÀÓ&EÐ#Ø)5×)>Ñ)>¸sÓ)HÐ&Ø*ÖHÐHÐHñ -ô �7‹|œs 4§<¡<Ó0Ô0Ð0Ò0r#   c                ó.  € V P                  4       p\        VP                  4       4      p\        P                  ! V^R7      w  r4\        VP                  4       4      pWR8:  g   Q hV P                  4       pV\        VP                  4       4      8X  g   Q hR# )z]
Verifies that dedensify produced the correct number of compressor nodes
in a directed graph
r+   N)r!   rL   rH   r   r-   r(   )r   r/   Úoriginal_edge_countÚc_Gr0   Úcompressed_edge_countrM   s   &      r    Útest_dedensify_edge_countÚ5TestDirectedDedensification.test_dedensify_edge_counti   s{   € ð
 ×%Ñ%Ó'ˆÜ! !§'¡'£)›nÐÜ—|’| A°Ô3‰ˆÜ # C§I¡I£KÓ 0ÐØ$Ô;Ð;Ð;Ø×2Ñ2Ó4ˆØ$¬¨L×,>Ñ,>Ó,@Ó(AÔAÐAÒAr#   c                ó   € V P                  4       pV P                  WP                  RR7      pV P                  4       pVP	                  4        F,  w  rEVP                  WE4      VP                  WE4      8X  d   K,  Q h	  R# )zY
Verifies that densification produces the correct edges from the
original directed graph
T)r4   N)r(   r?   r0   r!   rH   rK   )r   rM   Úoriginal_graphr/   rN   rO   s   &     r    Útest_densify_edgesÚ.TestDirectedDedensification.test_densify_edgesv   sj   € ð
 ×2Ñ2Ó4ˆØŸ™ l·L±LÀt˜ÓLˆØ×%Ñ%Ó'ˆØ—G‘G–I‰DˆAØ—:‘:˜aÓ# ~×'>Ñ'>¸qÓ'DÖDÐDÐDó r#   c                ó0  € V P                  4       p\        VP                  4       4      pV P                  WP                  4      p\        VP                  4       4      pW$8:  g   Q hV P                  4       pV\        VP                  4       4      8X  g   Q hR# )za
Verifies that densification produces the correct number of edges in the
original directed graph
N)r(   rL   rH   r?   r0   r!   )r   rM   rY   r]   rW   r/   s   &     r    Útest_densify_edge_countÚ3TestDirectedDedensification.test_densify_edge_count�   s~   € ð
 ×2Ñ2Ó4ˆÜ # L×$6Ñ$6Ó$8Ó 9ÐØŸ™ l·L±LÓAˆÜ! .×"6Ñ"6Ó"8Ó9ÐØ$Ô;Ð;Ð;Ø×%Ñ%Ó'ˆØ"¤c¨!¯'©'«)£nÔ4Ð4Ò4r#   rB   N)T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r!   r(   r1   Ústaticmethodr?   rD   rT   rZ   r^   ra   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r    r   r   
   sI   ø‡ € òò  ò" ð óó ðòB ò1ò Bò	E÷5ð 5r#   r   c                   óD   a € ] tR t^�t o R tR tR tR tR tR t	Rt
V tR# )	ÚTestUnDirectedDedensificationc                ó    € RRR. RO3RR	RR.3RR.3.p\         P                  ! 4       pV F  w  r4V F  pVP                  W54       K  	  K!  	  V# )
z3
Builds graph shown in the original research paper
r   r   r   r	   )r   ÚCBr   r   r   r   ©r   ÚGraphr   r   s   &     r    r!   Ú2TestUnDirectedDedensification.build_original_graph�   sg   € ð
 ØØ’/Ð"ØØØ�3�%ˆLØ�3�%ˆLð
ˆô —’“
ˆÛ.‰OˆFÛ!�Ø—‘˜vÖ.ó "ñ  /ð ˆr#   c                ó†   € \         P                  ! 4       p\         P                  ! V^R7      w  r#V\        4       8X  g   Q hR# )zF
Verify that an empty undirected graph results in no compressor nodes
r+   N)r   rq   r-   r.   )r   r/   rM   r0   s   &   r    r1   Ú(TestUnDirectedDedensification.test_empty£   s2   € ô �HŠH‹JˆÜ "§¢¨Q¸!Ô <ÑˆØœ#›%ÔÐÒr#   c                ó   € RV n         R# )Ú6ABN)rv   r   rB   rC   s   &r    rD   Ú*TestUnDirectedDedensification.setup_method«   s	   € Ø%ˆŽr#   c           
     óÎ   € R RR.3RR.3RR.3RR.3RR.3R	RR
.3R
RR.3RRR.3RR.3.	p\         P                  ! 4       pV F  w  r4V F  pVP                  W54       K  	  K!  	  V# )r   r   ÚCr   r   r   rv   r   r	   r   r   rp   r%   s   &     r    r(   Ú4TestUnDirectedDedensification.build_compressed_graph®   s¡   € à�3˜�*ÐØ�5�'ˆNØ�5�'ˆNØ�5�'ˆNØ�5�'ˆNØ�5˜#�,ÐØ�5˜%�.Ð!Ø�5˜%�.Ð!Ø�5�'ˆNð

Ðô Ÿ8š8›:ÐÛ0‰OˆFÛ!�Ø ×)Ñ)¨&Ö9ó "ñ  1ð  Ðr#   c                ó²  € V P                  4       p\        P                  ! V^R7      w  r#V P                  4       pVP	                  4        Fc  w  rVRP                  \        V4      4      pRP                  \        V4      4      pVP                  WV4      p	VP                  Wx4      p
Wš8X  d   Kc  Q h	  \        V4      \        V P                  4      8X  g   Q hR# )z…
Verifies that dedensify produced correct compressor nodes and the
correct edges to/from the compressor nodes in an undirected graph
r+   rG   N)
r!   r   r-   r(   rH   rI   rJ   rK   rL   r0   )r   r/   rX   r0   Úv_compressed_GrN   rO   rP   rQ   Úhas_compressed_edgeÚverified_has_compressed_edges   &          r    rT   Ú2TestUnDirectedDedensification.test_dedensify_edgesÀ   s±   € ð
 ×%Ñ%Ó'ˆÜ—|’| A°Ô3‰ˆØ×4Ñ4Ó6ˆØ—I‘I–K‰DˆAØ—'‘'œ& ›)Ó$ˆCØ—'‘'œ& ›)Ó$ˆCØ"%§,¡,¨qÓ"4ÐØ+9×+BÑ+BÀ3Ó+LÐ(Ø&ÖFÐFÐFñ  ô �7‹|œs 4§<¡<Ó0Ô0Ð0Ò0r#   c                ó2  € V P                  4       p\        P                  ! V^RR7      w  r#\        VP	                  4       4      p\        VP	                  4       4      pWE8:  g   Q hV P                  4       p\        VP	                  4       4      pWG8X  g   Q hR# )zU
Verifies that dedensify produced the correct number of edges in an
undirected graph
T)r,   r4   N)r!   r   r-   rL   rH   r(   )r   r/   rX   r0   rY   Úverified_original_edge_countÚverified_compressed_GÚverified_compressed_edge_counts   &       r    rZ   Ú7TestUnDirectedDedensification.test_dedensify_edge_countÐ   sƒ   € ð
 ×%Ñ%Ó'ˆÜ—|’| A°¸Ô>‰ˆÜ # C§I¡I£KÓ 0ÐÜ'*¨1¯7©7«9£~Ð$Ø$ÔDÐDÐDØ $× ;Ñ ;Ó =ÐÜ),Ð-B×-HÑ-HÓ-JÓ)KÐ&Ø$ÔFÐFÒFr#   rB   N)rc   rd   re   rf   r!   r1   rD   r(   rT   rZ   rh   ri   rj   s   @r    rm   rm   �   s*   ø‡ € òò& ò&ò ò$1÷ Gð Gr#   rm   Ú
graph_typec                 ó€   € V ! 4       p\         P                  ! VRR7      p\         P                  ! W!4      '       g   Q hR# )Úcolor)Únode_attributesN©r‡   )r   Úsnap_aggregationÚis_isomorphic)r…   r/   Úsummary_graphs   &  r    Útest_summarization_emptyr�   ß   s4   € ñ 	‹€AÜ×'Ò'¨¸:ÔF€MÜ×Ò˜M×-Ò-Ð-Ò-r#   c                   ó<   a € ] tR t^èt o RtR tR tR tR tRt	V t
R# )ÚAbstractSNAPc                ó   € R # ©N© rC   s   &r    r!   Ú!AbstractSNAP.build_original_graphë   ó   € Ùr#   c                ó   € R # r‘   r’   rC   s   &r    Úbuild_summary_graphÚ AbstractSNAP.build_summary_graphî   r”   r#   c                óê   € V P                  4       pV P                  4       pRp\        P                  ! WP                  V4      pV P                  V4      p\        P                  ! W%4      '       g   Q hR# ©ÚtypeN©rš   ©r!   r–   r   rŠ   rˆ   Údeterministic_labelsr‹   ©r   r]   rŒ   Úrelationship_attributesÚgenerated_summary_graphÚrelabeled_summary_graphs   &     r    Útest_summary_graphÚAbstractSNAP.test_summary_graphñ   sl   € Ø×2Ñ2Ó4ˆØ×0Ñ0Ó2ˆà"+ÐÜ"$×"5Ò"5Ø×0Ñ0Ð2Ió#
Ðð #'×";Ñ";Ð<SÓ"TÐÜ×Ò ×GÒGÐGÒGr#   c                óÜ   a€ \        SP                  4      p\        VV3R  lR7      pVP                  4        / p\	        V4       F  w  rERV 2pWcV&   K  	  \
        P                  ! SV4      # )c                 óX   <€ \        SP                  V ,          R ,          4      ^ ,          # )Úgroup)rJ   Únodes)Únr/   s   &€r    Ú<lambda>Ú3AbstractSNAP.deterministic_labels.<locals>.<lambda>þ   s   ø€ ¼¸q¿w¹wÀq½zÈ'Õ?RÓ8SÐTUÖ8Vr#   )Úkeyz
Supernode-)Úlistr§   rJ   ÚsortÚ	enumerater   Úrelabel_nodes)r   r/   Únode_labelsÚlabel_mappingÚindexÚnodeÚlabels   &f     r    r�   Ú!AbstractSNAP.deterministic_labelsü   sh   ø€ Ü˜1Ÿ7™7“mˆÜ˜[Ô.VÔWˆØ×ÑÔàˆÜ$ [Ö1‰KˆEØ   Ð(ˆEØ"'˜$Óñ 2ô ×Ò  =Ó1Ð1r#   r’   Nr‰   )rc   rd   re   rf   rˆ   r!   r–   r¢   r�   rh   ri   rj   s   @r    r�   r�   è   s$   ø‡ € Ø €Oòòò	H÷
2ð 
2r#   r�   c                   ó6   a € ] tR tRt o RtR tR tR tRtV t	R# )ÚTestSNAPNoEdgeTypesi	  c                óè   € V P                  4       pV P                  4       pRp\        P                  ! WP                  4      pV P                  V4      p\        P                  ! W%4      '       g   Q hR# r™   rœ   rž   s   &     r    r¢   Ú&TestSNAPNoEdgeTypes.test_summary_graph  si   € Ø×2Ñ2Ó4ˆØ×0Ñ0Ó2ˆà"+ÐÜ"$×"5Ò"5Ø×0Ñ0ó#
Ðð #'×";Ñ";Ð<SÓ"TÐÜ×Ò ×GÒGÐGÒGr#   c                ó  € 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//p. ROp\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F  w  rgVP                  Wg4       K  	  V# )r   r‡   ÚRedr   ry   ÚDÚEÚBlueÚFr/   ÚHÚIÚYellowÚJÚKÚL))r   r   )r   ry   )r   r½   )r   rÁ   )r   r¼   )r   rÃ   )r   r¿   )ry   r/   )r¼   rÀ   )rÁ   rÃ   )rÃ   rÄ   )rÁ   rÅ   ©r   rq   Úadd_noder   )r   r§   rH   r/   r³   Ú
attributesr   r   s   &       r    r!   Ú(TestSNAPNoEdgeTypes.build_original_graph  sØ   € à�'˜5Ð!Ø�'˜5Ð!Ø�'˜5Ð!Ø�'˜5Ð!Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜8Ð$Ø�'˜8Ð$Ø�'˜8Ð$Ø�'˜8Ð$ð
ˆò
ˆô �HŠH‹JˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó $‰NˆFØ�J‰J�vÖ&ñ $ð ˆr#   c                óN  € R RR/RRR/RRR/RRR/RRR/R	RR//p. ROp\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F  w  rgVP                  Wg4       K  	  R R
R0RRR0RRR0RRR0RRR0R	RR0/p\         P                  ! W8R4       V# )úSupernode-0r‡   r»   úSupernode-1úSupernode-2r¾   úSupernode-3úSupernode-4rÂ   úSupernode-5r   r   ry   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   rq   rÇ   r   Úset_node_attributes)	r   r§   rH   r/   r³   rÈ   r   r   Ú
supernodess	   &        r    r–   Ú'TestSNAPNoEdgeTypes.build_summary_graph>  së   € à˜G UÐ+Ø˜G UÐ+Ø˜G VÐ,Ø˜G VÐ,Ø˜G XÐ.Ø˜G XÐ.ð
ˆò
ˆô �HŠH‹JˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó $‰NˆFØ�J‰J�vÖ&ñ $ð ˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:ð
ˆ
ô 	×Ò˜q¨gÔ6Øˆr#   r’   N)
rc   rd   re   rf   rŸ   r¢   r!   r–   rh   ri   rj   s   @r    r·   r·   	  s!   ø‡ € Ø Ðò	Hò%÷N#ð #r#   r·   c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚTestSNAPUndirectedid  c                ó"  € 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//p. ROp\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F  w  rgpVP                  WgVR7       K  	  V# )r   r‡   r»   r   ry   r¼   r½   r¾   r¿   r/   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   r›   ))r   r   ÚStrong)r   ry   ÚWeak©r   r½   rØ   )r   rÁ   rÙ   )r   r¼   rÙ   )r   rÃ   rÙ   ©r   r¿   rØ   )ry   r/   rÙ   )r¼   rÀ   rÙ   )rÁ   rÃ   rØ   )rÃ   rÄ   rØ   )rÁ   rÅ   rØ   rÆ   ©	r   r§   rH   r/   r³   rÈ   r   r   rš   s	   &        r    r!   Ú'TestSNAPUndirected.build_original_graphe  sß   € à�'˜5Ð!Ø�'˜5Ð!Ø�'˜5Ð!Ø�'˜5Ð!Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜8Ð$Ø�'˜8Ð$Ø�'˜8Ð$Ø�'˜8Ð$ð
ˆò
ˆô �HŠH‹JˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó %*Ñ ˆF˜DØ�J‰J�v¨DˆJÖ1ñ %*ð ˆr#   c                óZ  € R RR/RRR/RRR/RRR/RRR/R	RR//p. ROp\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F  w  rgpVP                  WgR
V/.R7       K  	  R RR0RRR0RRR0RRR0RRR0R	RR0/p	\         P                  ! W9R4       V# )rË   r‡   r»   rÌ   rÍ   r¾   rÎ   rÏ   rÂ   rÐ   rš   ©Útypesr   r   ry   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§   rH   r/   r³   rÈ   r   r   rš   rÓ   s
   &         r    r–   Ú&TestSNAPUndirected.build_summary_graphŒ  sù   € à˜G UÐ+Ø˜G UÐ+Ø˜G VÐ,Ø˜G VÐ,Ø˜G XÐ.Ø˜G XÐ.ð
ˆò
ˆô �HŠH‹JˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó %*Ñ ˆF˜DØ�J‰J�v¨v°t¨nÐ-=ˆJÖ>ñ %*ð ˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:ð
ˆ
ô 	×Ò˜q¨gÔ6Øˆr#   r’   N©rc   rd   re   rf   r!   r–   rh   ri   rj   s   @r    rÖ   rÖ   d  s   ø‡ € ò%÷N#ð #r#   rÖ   c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚTestSNAPDirectedi²  c                ó  € R RR/RRR/RRR/RRR/RRR/R	RR/R
RR/RRR//p. ROp\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F  w  rgpVP                  WgVR7       K  	  V# )r   r‡   r»   r   ry   ÚGreenr¼   r½   r¾   r¿   r/   rÂ   rÀ   r›   ))r   ry   rØ   rÚ   )r   r¿   rÙ   )r   r¼   rØ   )r   r½   rÙ   rÛ   )ry   r/   rØ   )ry   r¿   rØ   )r¼   r½   rØ   )r¼   rÀ   rØ   )r/   r½   rØ   )rÀ   r¿   rØ   )r   r   rÇ   r   rÜ   s	   &        r    r!   Ú%TestSNAPDirected.build_original_graph³  s·   € à�'˜5Ð!Ø�'˜5Ð!Ø�'˜7Ð#Ø�'˜7Ð#Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜8Ð$Ø�'˜8Ð$ð	
ˆò
ˆô �JŠJ‹LˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó %*Ñ ˆF˜DØ�J‰J�v¨DˆJÖ1ñ %*ð ˆr#   c                óŒ  € R RR/RRR/RRR/RRR//pR RR	R
/.3R RR	R/R	R
/.3RRR	R
/.3RRR	R
/.3RRR	R
/.3.p\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F  w  rgpVP                  WgVR7       K  	  R RR0RRR0RRR0RRR0RRR0RRR0/p	\         P                  ! W9R4       V# )rË   r‡   r»   rÌ   ræ   rÍ   r¾   rÎ   rÂ   rš   rØ   rÙ   rß   r   r   ry   r¼   r½   r¿   r/   rÀ   rÏ   rÁ   rÃ   rÐ   rÄ   rÅ   r¦   )r   r   rÇ   r   rÒ   )
r   r§   rH   r/   r³   rÈ   r   r   rà   rÓ   s
   &         r    r–   Ú$TestSNAPDirected.build_summary_graphÖ  sA  € à˜G UÐ+Ø˜G WÐ-Ø˜G VÐ,Ø˜G XÐ.ð	
ˆð ˜M¨V°XÐ,>Ð+?Ð@Ø˜M¨V°VÐ,<¸vÀxÐ>PÐ+QÐRØ˜M¨V°XÐ,>Ð+?Ð@Ø˜M¨V°XÐ,>Ð+?Ð@Ø˜M¨V°XÐ,>Ð+?Ð@ð
ˆô �JŠJ‹LˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó &+Ñ!ˆF˜EØ�J‰J�v¨UˆJÖ3ñ &+ð ˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:ð
ˆ
ô 	×Ò˜q¨gÔ6Øˆr#   r’   Nrâ   rj   s   @r    rä   rä   ²  s   ø‡ € ò!÷Fð r#   rä   c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚTestSNAPUndirectedMultiiø  c                ó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
//	pR RRR.3RRRR.3RRR.3RRR.3RR	R.3RR	RR.3RRRR.3R	RRR.3.p\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F"  w  rgpV F  p	VP                  WgV	R7       K  	  K$  	  V# )r   r‡   r»   r   ry   r¼   r¾   r½   r¿   r/   rÂ   rÀ   rÁ   rÙ   rØ   r›   )r   Ú
MultiGraphrÇ   r   ©
r   r§   rH   r/   r³   rÈ   r   r   rà   rš   s
   &         r    r!   Ú,TestSNAPUndirectedMulti.build_original_graphù  s<  € à�'˜5Ð!Ø�'˜5Ð!Ø�'˜5Ð!Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜8Ð$Ø�'˜8Ð$Ø�'˜8Ð$ð

ˆð �#˜ Ð)Ð*Ø�#˜ Ð)Ð*Ø�#˜�zÐ"Ø�#˜�zÐ"Ø�#˜�xÐ Ø�#˜ Ð)Ð*Ø�#˜ Ð)Ð*Ø�#˜ Ð)Ð*ð	
ˆô �MŠM‹OˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó &+Ñ!ˆF˜EÛ�Ø—
‘
˜6°�
Ö5ó ñ &+ð ˆr#   c                óº  € R RR/RRR/RRR/RRR/RRR/R	RR//pRRR
R/.3RRR
R/R
R/.3RRR
R/.3RR	R
R/R
R/.3RRR
R/R
R/.3.p\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F"  w  rgpV F  p	VP                  WgV	R7       K  	  K$  	  R RR0RRR0RRR0RRR0RRR0R	RR0/p
\         P                  ! W:R4       V# )rË   r‡   r»   rÌ   r¾   rÍ   rÂ   rÎ   rÏ   rÐ   rš   rÙ   rØ   r›   r   r   ry   r¼   r½   r¿   r/   rÀ   rÁ   rÃ   rÄ   rÅ   r¦   )r   rí   rÇ   r   rÒ   ©r   r§   rH   r/   r³   rÈ   r   r   rà   rš   rÓ   s   &          r    r–   Ú+TestSNAPUndirectedMulti.build_summary_graph  sm  € à˜G UÐ+Ø˜G VÐ,Ø˜G XÐ.Ø˜G VÐ,Ø˜G XÐ.Ø˜G UÐ+ð
ˆð ˜M¨V°VÐ,<Ð+=Ð>Ø˜M¨V°VÐ,<¸vÀxÐ>PÐ+QÐRØ˜M¨V°XÐ,>Ð+?Ð@Ø˜M¨V°VÐ,<¸vÀxÐ>PÐ+QÐRØ˜M¨V°VÐ,<¸vÀxÐ>PÐ+QÐRð
ˆô �MŠM‹OˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó &+Ñ!ˆF˜EÛ�Ø—
‘
˜6°�
Ö5ó ñ &+ð
 ˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:ð
ˆ
ô 	×Ò˜q¨gÔ6Øˆr#   r’   Nrâ   rj   s   @r    rë   rë   ø  s   ø‡ € ò÷B"ð "r#   rë   c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚTestSNAPDirectedMultii?  c                ó�  € R RR/RRR/RRR/RRR/RRR/R	RR/R
RR/RRR//pR RRR.3R RR.3R R	R.3RRRR.3RRR.3RR	R.3RR
RR.3RR	R.3RRR.3RRRR.3R
RR.3RR	R.3.p\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F"  w  rgpV F  p	VP                  WgV	R7       K  	  K$  	  V# )r   r‡   r»   r   ry   ræ   r¼   r½   r¾   r¿   r/   rÂ   rÀ   rÙ   rØ   r›   )r   ÚMultiDiGraphrÇ   r   rî   s
   &         r    r!   Ú*TestSNAPDirectedMulti.build_original_graph@  s`  € à�'˜5Ð!Ø�'˜5Ð!Ø�'˜7Ð#Ø�'˜7Ð#Ø�'˜6Ð"Ø�'˜6Ð"Ø�'˜8Ð$Ø�'˜8Ð$ð	
ˆð �#˜ Ð)Ð*Ø�#˜�zÐ"Ø�#˜�xÐ Ø�#˜ Ð)Ð*Ø�#˜�xÐ Ø�#˜�zÐ"Ø�#˜ Ð)Ð*Ø�#˜�zÐ"Ø�#˜�zÐ"Ø�#˜ Ð)Ð*Ø�#˜�zÐ"Ø�#˜�zÐ"ð
ˆô �OŠOÓˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó &+Ñ!ˆF˜EÛ�Ø—
‘
˜6°�
Ö5ó ñ &+ð ˆr#   c           	     óz  € R RR/RRR/RRR/RRR//pR RRR	.3R RRR	.3RRR	.3RRRR	.3RRR	.3.p\         P                  ! 4       pV F  pW,          pVP                  ! V3/ VB  K   	  V F"  w  rgpV F  p	VP                  WgV	R
7       K  	  K$  	  R RR0RRR0RRR0RRR0/p
\         P                  ! W:R4       V# )rË   r‡   r»   rÌ   r¾   rÍ   rÂ   rÎ   rÙ   rØ   r›   r   r   ry   r¼   r½   r¿   r/   rÀ   r¦   )r   rö   rÇ   r   rÒ   rñ   s   &          r    r–   Ú)TestSNAPDirectedMulti.build_summary_graphd  s  € à˜G UÐ+Ø˜G VÐ,Ø˜G XÐ.Ø˜G VÐ,ð	
ˆð ˜M¨F°HÐ+=Ð>Ø˜M¨F°HÐ+=Ð>Ø˜M¨H¨:Ð6Ø˜M¨F°HÐ+=Ð>Ø˜M¨H¨:Ð6ð
ˆô �OŠOÓˆÛˆDØ�ˆJØ�JŠJ�tÑ*˜zÔ*ñ ó &+Ñ!ˆF˜EÛ�Ø—
‘
˜6°�
Ö5ó ñ &+ð
 ˜C ˜:Ø˜C ˜:Ø˜C ˜:Ø˜C ˜:ð	
ˆ
ô 	×Ò˜q¨gÔ6Øˆr#   r’   Nrâ   rj   s   @r    rô   rô   ?  s   ø‡ € ò"÷Hð r#   rô   )Ú__doc__ÚpytestÚnetworkxr   r   rm   ÚmarkÚparametrizerq   r   rí   rö   r�   r�   r·   rÖ   rä   rë   rô   r’   r#   r    Ú<module>rÿ      sÄ   ðñó ã ÷B5ñ B5÷JMGñ MGð` ‡�×ÑØ�2—8‘8˜RŸZ™Z¨¯©¸¿¹ÐHóñ.óð.÷2ñ 2ôBX˜,ô XôvK˜ô Kô\C�|ô CôLD˜lô DôNC˜Lö Cr#   