+
    �°³j ¡  ã                   óî   € ^ RI t ^ RIt^ RIHtHtHt ^ RIHtH	t	H
t
Ht ] P                  P                  RR4      R 4       t] P                  P                  R4      R 4       tR tR	 tR
 t ! R R4      tR# )é    N)Úgraph_edit_distanceÚoptimal_edit_pathsÚoptimize_graph_edit_distance)Úcircular_ladder_graphÚcycle_graphÚ
path_graphÚwheel_graphÚsourcec                 ó<  € \         P                  ! R 4       \        P                  ! ^4      p\        P                  ! V^V R7      p\         P
                  ! \        P                  RR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)Únumpy)Úsample_sizer
   zInitial node.*not in G©ÚmatchN)ÚpytestÚimportorskipÚnxÚcomplete_graphÚgenerate_random_pathsÚraisesÚNodeNotFoundÚnext)r
   ÚGÚpath_gens   &  Új/home/luca/screen-checking/.venv/lib/python3.14/site-packages/networkx/algorithms/tests/test_similarity.pyÚ*test_generate_random_paths_source_not_in_Gr      sa   € ä
×Ò˜Ô Ü
×Ò˜!Ó€Aä×'Ò'¨°qÀÔH€HÜ	�Š”r—‘Ð.F×	GÖ	GÜˆXŒ÷ 
H×	G×	GÒ	Gús   Á4B
Â
B	zignore::RuntimeWarningc            
      óš  € \         P                  ! R 4       \        P                  ! 4       p V P	                  . R
O4       V P                  ^ ^4       \        \        P                  ! V ^^^ ^*R7      4      p\        V4      ^8X  g   Q h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q h\        P                  ! V ^^^^*R7      p\         P                  ! \        RR7      ;_uu_ 4        \        V4       RRR4       \        P                  ! V ^^^*R	7      p\         P                  ! \        RR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     Ld; i  + '       g   i     R# ; i)r   )Úpath_lengthr
   Úseedc              3   ó>   "  € T F  p\        V4      ^8H  x € K  	  R# 5i)é   N)Úlen©Ú.0Úpaths   & r   Ú	<genexpr>ÚAtest_generate_random_paths_with_isolated_nodes.<locals>.<genexpr>%   s   é € Ð0©% $Œs�4‹y˜AŽ~«%ùs   ‚FTc              3   ó8   "  € T F  q^ ,          ^ 8H  x € K  	  R# 5i©r   N© r"   s   & r   r%   r&   &   s   é € Ð.© �A�w˜!Ž|«ùs   ‚zprobabilities contain NaNr   N©r   r   )r   é   é   )r   r   r   ÚGraphÚadd_nodes_fromÚadd_edgeÚlistr   r!   Úallr   Ú
ValueError)r   Úpathsr   s      r   Ú.test_generate_random_paths_with_isolated_nodesr4      s>  € ä
×Ò˜Ô Ü
�Š‹
€AØ×Ñ’YÔØ‡J�Jˆq�!Ôô ”×)Ò)¨!¨Q¸AÀaÈbÔQÓR€EÜˆu‹:˜Œ?Ðˆ?ß‹3Ñ0©%Ó0�3�3Š3Ñ0©%Ó0×0Ò0Ð0Ð0ß‹3Ñ.©Ó.�3�3Š3Ñ.©Ó.×.Ò.Ð.Ð.ô ×'Ò'¨¨1¸!ÀAÈBÔO€HÜ	�Š”zÐ)D×	EÖ	EÜˆXŒ÷ 
Fô ×'Ò'¨¨1¸!À"ÔE€HÜ	�Š”zÐ)D×	EÖ	EÜˆXŒ÷ 
FÑ	E÷ 
F×	Eú÷
 
F×	EÐ	Eús   Ä>F&ÆF9Æ&F6	Æ9G
	c                 ó
   € W8H  # ©Nr)   ©Ún1Ún2s   &&r   Únmatchr:   3   ó	   € Ø‰8€Oó    c                 ó
   € W8H  # r6   r)   ©Úe1Úe2s   &&r   ÚematchrA   7   r;   r<   c                  ó@  € \         P                  ! 4       p V P                  R R R7       V P                  RRR7       V P                  RRR7       V P                  RRR7       V P                  R RRR7       V P                  RRRR7       V P                  RRRR7       V # )ÚA©ÚlabelÚBÚCÚDúa-búb-cúb-d)r   r-   Úadd_noder/   )r   s    r   ÚgetCanonicalrM   ;   sˆ   € Ü
�Š‹
€AØ‡J�Jˆs˜#€JÔØ‡J�Jˆs˜#€JÔØ‡J�Jˆs˜#€JÔØ‡J�Jˆs˜#€JÔØ‡J�Jˆs�C˜u€JÔ%Ø‡J�Jˆs�C˜u€JÔ%Ø‡J�Jˆs�C˜u€JÔ%Ø€Hr<   c                   ó¢  a € ] tR t^Gt o ]R 4       tR tR tR tR t	R t
R tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t] PB                  ] PD                  PF                  PH                  .t%]&PN                  PQ                  R]%4      R 4       t)]&PN                  PQ                  R]%4      R 4       t*]&PN                  PQ                  R]%4      R 4       t+]&PN                  PQ                  R]%4      R  4       t,]&PN                  PQ                  R!]%4      R" 4       t-R# t.R$ t/R% t0R& t1R' t2R( t3R) t4R* t5R+ t6R, t7]&PN                  PQ                  R-RD4      ]&PN                  PQ                  R.RE4      R/ 4       4       t8R0 t9R1 t:R2 t;R3 t<R4 t=R5 t>R6 t?R7 t@R8 tAR9 tBR: tCR; tDR< tER= tFR> tGR? tHR@ tIRA tJRBtKV tLRC# )FÚTestSimilarityc                ó^   € \         P                  ! R 4      s\         P                  ! R4       R# )r   ÚscipyN)r   r   Únp)Úclss   &r   Úsetup_classÚTestSimilarity.setup_classH   s"   € ô × Ò  Ó)ˆÜ×Ò˜GÖ$r<   c                ó  € \         P                  ! ^4      pVP                  4       p\        P                  ! \
        \        W^.R7       \        P                  ! \
        \        W. ROR7       \        P                  ! \         P                  \        WRR7       \        P                  ! \         P                  \        WRR7       \        P                  ! \         P                  \        WR	R7       \        WR
R7      ^ 8X  g   Q h\        WRR7      ^8X  g   Q h\        WR
^R7      ^ 8X  g   Q h\        WR^R7      ^8X  g   Q h\        WRRR7      e   Q h\        P                  ! \         P                  \        W^ R7       R# )é   )Úroots)rX   Útimeoutç-Cëâ6?N)rY   )r,   r    é   )é	   r    )r    r\   )r\   r\   ©r+   r,   ©r   r+   )	r   Ú
star_graphÚcopyr   r   r2   r   r   ÚNetworkXError)ÚselfÚG0ÚG1s   &  r   Ú*test_graph_edit_distance_roots_and_timeoutÚ9TestSimilarity.test_graph_edit_distance_roots_and_timeoutN   s  € Ü�]Š]˜1ÓˆØ�W‰W‹YˆÜ�Š”jÔ"5°rÀaÀSÕIÜ�Š”jÔ"5°rÂYÕOÜ�Š”b—o‘oÔ':¸BÈ&ÕQÜ�Š”b—o‘oÔ':¸BÈ&ÕQÜ�Š”b—o‘oÔ':¸BÈ&ÕQÜ" 2°Ô8¸AÔ=Ð=Ð=Ü" 2°Ô8¸AÔ=Ð=Ð=Ü" 2°ÀÔCÀqÔHÐHÐHÜ" 2°ÀÔCÀqÔHÐHÐHÜ" 2°ÀÔHÒPÐPÐPä�Š”b×&Ñ&Ô(;¸RÈQ×Or<   c                ó²  € \         P                  ! 4       p\        ^4      p\        ^4      p\	        ^4      p\        W4      ^ 8X  g   Q h\        W4      ^8X  g   Q h\        W!4      ^8X  g   Q h\        W4      ^8X  g   Q h\        W14      ^8X  g   Q h\        W4      ^8X  g   Q h\        WA4      ^8X  g   Q h\        W"4      ^ 8X  g   Q h\        W#4      ^8X  g   Q h\        W24      ^8X  g   Q h\        W$4      ^8X  g   Q h\        WB4      ^8X  g   Q h\        W34      ^ 8X  g   Q h\        W44      ^8X  g   Q h\        WC4      ^8X  g   Q h\        WD4      ^ 8X  g   Q hR# )é   N)r   r-   r   r   r	   r   ©rb   rc   rd   ÚG2ÚG3s   &    r   Útest_graph_edit_distanceÚ'TestSimilarity.test_graph_edit_distance^   sX  € Ü�XŠX‹ZˆÜ˜‹]ˆÜ˜‹^ˆÜ˜‹^ˆä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨bÔ0Ð0Ð0Ü" 2Ó*¨bÔ0Ð0Ð0Ü" 2Ó*¨bÔ0Ð0Ð0Ü" 2Ó*¨bÔ0Ð0Ð0Ü" 2Ó*¨bÔ0Ð0Ð0Ü" 2Ó*¨bÔ0Ð0Ð0ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ò/r<   c                ó`  € \        ^4      p\        ^4      pVP                  P                  4        F  w  r4V^,          ^ 8X  d   RMRVR&   K  	  VP                  P                  4        F  w  r4V^,          ^8X  d   RMRVR&   K  	  \        W4      ^ 8X  g   Q h\        WR R7      ^8X  g   Q hR# )rW   ÚredÚblueÚcolorc                 ó(   € V R ,          VR ,          8H  # ©rq   r)   r7   s   &&r   Ú<lambda>ÚDTestSimilarity.test_graph_edit_distance_node_match.<locals>.<lambda>‚   ó   € °"°Wµ+ÀÀGÅÒ2Lr<   )Ú
node_matchN)r   ÚnodesÚitemsr   )rb   rd   rj   ÚnÚattrs   &    r   Ú#test_graph_edit_distance_node_matchÚ2TestSimilarity.test_graph_edit_distance_node_matchx   s¡   € Ü˜‹^ˆÜ˜‹^ˆØ—x‘x—~‘~Ö'‰GˆAØ%&¨¥U¨a¤Z™E°VˆD�‹Mñ (à—x‘x—~‘~Ö'‰GˆAØ%&¨¥U¨a¤Z™E°VˆD�‹Mñ (ä" 2Ó*¨aÔ/Ð/Ð/äØÑ#Lôð ôð	
òr<   c                ó„  € \        ^4      p\        ^4      pVP                  P                  4        F#  w  r4\        V4      ^,          ^ 8X  d   RMRVR&   K%  	  VP                  P                  4        F#  w  r4\        V4      ^,          ^ 8X  d   RMRVR&   K%  	  \	        W4      ^ 8X  g   Q h\	        WR R7      ^8X  g   Q hR# )rh   ro   rp   rq   c                 ó(   € V R ,          VR ,          8H  # rs   r)   r>   s   &&r   rt   ÚDTestSimilarity.test_graph_edit_distance_edge_match.<locals>.<lambda>‘   rv   r<   )Ú
edge_matchN©r   Úedgesry   Úminr   )rb   rd   rj   Úer{   s   &    r   Ú#test_graph_edit_distance_edge_matchÚ2TestSimilarity.test_graph_edit_distance_edge_match‡   sª   € Ü˜‹]ˆÜ˜‹]ˆØ—x‘x—~‘~Ö'‰GˆAÜ%(¨£V¨a¥Z°1¤_™E¸&ˆD�‹Mñ (à—x‘x—~‘~Ö'‰GˆAÜ%(¨£V¨q¥[°AÔ%5™E¸6ˆD�‹Mñ (ä" 2Ó*¨aÔ/Ð/Ð/äØÑ#Lôð ôð	
òr<   c                óR  € \        ^4      p\        ^4      pVP                  P                  4        F  w  r4V^,          ^ 8X  d   RMRVR&   K  	  VP                  P                  4        F  w  r4V^,          ^8X  d   RMRVR&   K  	  R pR pR p\        VVVVVR7      ^8X  g   Q hR# )	rh   ro   rp   rq   c                 ó4   € V R ,          VR ,          8X  d   ^# ^
# rs   r)   )ÚuattrÚvattrs   &&r   Únode_subst_costÚJTestSimilarity.test_graph_edit_distance_node_cost.<locals>.node_subst_costž   s   € Ø�W�~  w¥Ô/Ùár<   c                 ó&   € V R ,          R8X  d   ^# ^2# ©rq   rp   r)   ©r{   s   &r   Únode_del_costÚHTestSimilarity.test_graph_edit_distance_node_cost.<locals>.node_del_cost¤   s   € Ø�G�} Ô&Ùár<   c                 ó&   € V R ,          R8X  d   ^(# ^d# r�   r)   r�   s   &r   Únode_ins_costÚHTestSimilarity.test_graph_edit_distance_node_cost.<locals>.node_ins_costª   s   € Ø�G�} Ô&Ùár<   )rŒ   r‘   r”   N)r   rx   ry   r   )rb   rd   rj   rz   r{   rŒ   r‘   r”   s   &       r   Ú"test_graph_edit_distance_node_costÚ1TestSimilarity.test_graph_edit_distance_node_cost–   s¨   € Ü˜‹]ˆÜ˜‹]ˆØ—x‘x—~‘~Ö'‰GˆAØ%&¨¥U¨a¤Z™E°VˆD�‹Mñ (à—x‘x—~‘~Ö'‰GˆAØ%&¨¥U¨a¤Z™E°VˆD�‹Mñ (ò	ò	ò	ô  ØØØ /Ø+Ø+ôð ôð		
òr<   c                óv  € \        ^4      p\        ^4      pVP                  P                  4        F#  w  r4\        V4      ^,          ^ 8X  d   RMRVR&   K%  	  VP                  P                  4        F#  w  r4\        V4      ^,          ^ 8X  d   RMRVR&   K%  	  R pR pR p\	        VVVVVR7      R8X  g   Q hR	# )
rh   ro   rp   rq   c                 ó4   € V R ,          VR ,          8X  d   R# R# )rq   ç{®Gáz„?çš™™™™™¹?r)   )ÚgattrÚhattrs   &&r   Úedge_subst_costÚJTestSimilarity.test_graph_edit_distance_edge_cost.<locals>.edge_subst_costÃ   s   € Ø�W�~  w¥Ô/Ùár<   c                 ó&   € V R ,          R8X  d   R# R# )rq   rp   çš™™™™™É?ç      à?r)   r�   s   &r   Úedge_del_costÚHTestSimilarity.test_graph_edit_distance_edge_cost.<locals>.edge_del_costÉ   ó   € Ø�G�} Ô&Ùár<   c                 ó&   € V R ,          R8X  d   R# R# )rq   rp   gš™™™™™Ù?ç      ð?r)   r�   s   &r   Úedge_ins_costÚHTestSimilarity.test_graph_edit_distance_edge_cost.<locals>.edge_ins_costÏ   r¥   r<   )rž   r£   r¨   gq=
×£pÍ?Nr‚   )rb   rd   rj   r…   r{   rž   r£   r¨   s   &       r   Ú"test_graph_edit_distance_edge_costÚ1TestSimilarity.test_graph_edit_distance_edge_cost»   s±   € Ü˜‹]ˆÜ˜‹]ˆØ—x‘x—~‘~Ö'‰GˆAÜ%(¨£V¨a¥Z°1¤_™E¸&ˆD�‹Mñ (à—x‘x—~‘~Ö'‰GˆAÜ%(¨£V¨q¥[°AÔ%5™E¸6ˆD�‹Mñ (ò	ò	ò	ô  ØØØ /Ø+Ø+ôð ôð		
òr<   c                ó    € \        ^4      p\        ^4      p\        W^R7      e   Q h\        W^R7      ^8X  g   Q h\        W4      ^8X  g   Q hR# )r,   )Úupper_boundN)r   r   ©rb   rd   rj   s   &  r   Ú$test_graph_edit_distance_upper_boundÚ3TestSimilarity.test_graph_edit_distance_upper_boundà   sQ   € Ü" 1Ó%ˆÜ" 1Ó%ˆÜ" 2°qÔ9ÒAÐAÐAÜ" 2°rÔ:¸bÔ@Ð@Ð@Ü" 2Ó*¨bÔ0Ð0Ò0r<   c                óR  € \        ^4      p\        ^4      p\        W4      w  r4V^8X  g   Q h\        V4      ^8X  g   Q hR p. RO. RO3. RO. RO3. RO. RO3. R	O. R
O3. RO. RO3. RO. RO3.pV Uu0 uF  qu! V!  kK
  	  upV Uu0 uF  qu! V!  kK
  	  up8X  g   Q hR# u upi u upi )r    c                 óX   € \        \        V 4      4      \        \        VR  R7      4      3# )c                 ó   € R V 9   V 3# r6   r)   )Úxs   &r   rt   ÚKTestSimilarity.test_optimal_edit_paths.<locals>.canonical.<locals>.<lambda>ñ   s   € °t¸q±yÀ!±nr<   )Úkey)ÚtupleÚsorted)Úvertex_pathÚ	edge_paths   &&r   Ú	canonicalÚ9TestSimilarity.test_optimal_edit_paths.<locals>.canonicalî   s)   € ä”f˜[Ó)Ó*Ü”f˜YÑ,DÔEÓFðð r<   N)©r   r   ©r+   r+   ©r,   r,   )©r^   r^   ©r]   r]   ©N©r   r,   )r½   r]   ©r,   r+   )©r^   rÃ   rÁ   ©Nr^   )r^   ©r+   r   r¿   )rÀ   ©r]   rÃ   ©Nr]   )r^   r]   ©r,   r   )©r^   r]   rÈ   rÆ   )rÃ   rÇ   rÄ   )rÅ   ©r]   r^   rÉ   )rÃ   r¾   rÊ   )rË   rÌ   rÂ   )r   r   r   r!   )rb   rd   rj   r3   Úcostr»   Úexpected_pathsÚps   &       r   Útest_optimal_edit_pathsÚ&TestSimilarity.test_optimal_edit_pathsç   sÒ   € Ü˜‹]ˆÜ˜‹^ˆÜ(¨Ó0‰ˆØ�qŒyÐˆyÜ�5‹z˜QŒÐˆò	ò )ÚDðò
 )ÚDðò
 )ÚDðò
 )ÚDðò
 )ÚDðò
 )ÚDðð+
ˆñ4 (-Ó-¡u !�	˜1”¡uÑ-ÉÓ1XÉÀA°)¸Q´-ÉÑ1XÔXÐXÒXùÒ-ùÒ1Xs   Á2BÂB$c                ó€   € \        ^4      p\        ^4      pRp\        W4       F  pWC8  g   Q hTpK  	  V^8X  g   Q hR# )r,   iè  N)r   r   )rb   rd   rj   ÚbestcostrÍ   s   &    r   Ú!test_optimize_graph_edit_distanceÚ0TestSimilarity.test_optimize_graph_edit_distance  sG   € Ü" 1Ó%ˆÜ" 1Ó%ˆØˆÜ0°Ö8ˆDØ”?Ð"�?ØŠHñ 9ð ˜2Œ~ÐŠ~r<   c                óT  € \         P                  ! 4       p\         P                  ! 4       pVP                  R4       \         P                  ! 4       pVP                  R4       \         P                  ! 4       pVP                  R4       \        W4      ^ 8X  g   Q h\        W4      ^8X  g   Q h\        W!4      ^8X  g   Q h\        W4      ^8X  g   Q h\        W14      ^8X  g   Q h\        W4      ^8X  g   Q h\        WA4      ^8X  g   Q h\        W"4      ^ 8X  g   Q h\        W#4      ^ 8X  g   Q h\        W24      ^ 8X  g   Q h\        W$4      ^8X  g   Q h\        WB4      ^8X  g   Q h\        W34      ^ 8X  g   Q h\        W44      ^8X  g   Q h\        WC4      ^8X  g   Q h\        WD4      ^ 8X  g   Q hR# )rC   N)©rC   rC   ©rC   rF   )rØ   ©rF   rF   )r×   rØ   rÙ   )r   r-   Úadd_edges_fromr   ri   s   &    r   Útest_selfloopsÚTestSimilarity.test_selfloops  s‹  € Ü�XŠX‹ZˆÜ�XŠX‹ZˆØ
×ÑÐ2Ô3Ü�XŠX‹ZˆØ
×ÑÐ2Ô3Ü�XŠX‹ZˆØ
×ÑÐ>Ô?ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ò/r<   c                óT  € \         P                  ! 4       p\         P                  ! 4       pVP                  R4       \         P                  ! 4       pVP                  R4       \         P                  ! 4       pVP                  R4       \        W4      ^ 8X  g   Q h\        W4      ^8X  g   Q h\        W!4      ^8X  g   Q h\        W4      ^8X  g   Q h\        W14      ^8X  g   Q h\        W4      ^8X  g   Q h\        WA4      ^8X  g   Q h\        W"4      ^ 8X  g   Q h\        W#4      ^8X  g   Q h\        W24      ^8X  g   Q h\        W$4      ^8X  g   Q h\        WB4      ^8X  g   Q h\        W34      ^ 8X  g   Q h\        W44      ^8X  g   Q h\        WC4      ^8X  g   Q h\        WD4      ^ 8X  g   Q hR# )rC   N)rØ   ©rF   rG   ©rG   rH   )rH   rC   )rØ   rÞ   rß   ©rC   rH   )rØ   ©rC   rG   )rF   rH   rß   )r   ÚDiGraphrÚ   r   ri   s   &    r   Útest_digraphÚTestSimilarity.test_digraph;  s‹  € Ü�ZŠZ‹\ˆÜ�ZŠZ‹\ˆØ
×ÑÐJÔKÜ�ZŠZ‹\ˆØ
×ÑÐJÔKÜ�ZŠZ‹\ˆØ
×ÑÐJÔKä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ò/r<   c                óT  € \         P                  ! 4       p\         P                  ! 4       pVP                  R4       \         P                  ! 4       pVP                  R4       \         P                  ! 4       pVP                  R4       \        W4      ^ 8X  g   Q h\        W4      ^8X  g   Q h\        W!4      ^8X  g   Q h\        W4      ^8X  g   Q h\        W14      ^8X  g   Q h\        W4      ^8X  g   Q h\        WA4      ^8X  g   Q h\        W"4      ^ 8X  g   Q h\        W#4      ^8X  g   Q h\        W24      ^8X  g   Q h\        W$4      ^8X  g   Q h\        WB4      ^8X  g   Q h\        W34      ^ 8X  g   Q h\        W44      ^8X  g   Q h\        WC4      ^8X  g   Q h\        WD4      ^ 8X  g   Q hR# )rC   N)rØ   rÞ   rá   )rØ   rÞ   rÞ   rá   )rØ   rÞ   rá   rá   rá   )r   Ú
MultiGraphrÚ   r   ri   s   &    r   Útest_multigraphÚTestSimilarity.test_multigraphX  s‹  € Ü�]Š]‹_ˆÜ�]Š]‹_ˆØ
×ÑÐ>Ô?Ü�]Š]‹_ˆØ
×ÑÐJÔKÜ�]Š]‹_ˆØ
×ÑÐVÔWä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ð/ä" 2Ó*¨aÔ/Ð/Ò/r<   c                óæ   € \         P                  ! 4       pVP                  R4       \         P                  ! 4       pVP                  R4       \        W4      ^8X  g   Q h\        W!4      ^8X  g   Q hR# )ÚhardwareN))rê   Úkernel)rë   rê   )rë   Ú	userspace)rì   rë   ))ÚwinterÚspring)rî   Úsummer)rï   Úautumn)rð   rí   )r   ÚMultiDiGraphrÚ   r   r®   s   &  r   Útest_multidigraphÚ TestSimilarity.test_multidigraphu  sj   € Ü�_Š_ÓˆØ
×Ñðô	
ô �_Š_ÓˆØ
×Ñðô	
ô # 2Ó*¨aÔ/Ð/Ð/Ü" 2Ó*¨aÔ/Ð/Ò/r<   c                óú   € \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \	        WP                  4       \        \        R7      ^ 8X  g   Q hR# ©rC   rD   rF   rI   ©rw   r�   N)r   r-   rL   r/   r   r`   r:   rA   ©rb   r   s   & r   ÚtestCopyÚTestSimilarity.testCopy�  s_   € Ü�HŠH‹JˆØ	�
‰
�3˜cˆ
Ô"Ø	�
‰
�3˜cˆ
Ô"Ø	�
‰
�3˜ 5ˆ
Ô)ä §6¡6£8¼Ì6ÔRÐVWÔWð	
ÚWr<   c                ó|  € \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \	        W\
        \        R7      ^ 8X  g   Q hR# rõ   ©r   r-   rL   r/   r   r:   rA   r®   s   &  r   ÚtestSameÚTestSimilarity.testSame–  ó”   € Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ü" 2´fÌÔPÐTUÔUÐUÒUr<   c                ó|  € \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \	        W\
        \        R7      ^8X  g   Q hR# )rC   rD   rF   rI   Úbadrö   Nrû   r®   s   &  r   ÚtestOneEdgeLabelDiffÚ#TestSimilarity.testOneEdgeLabelDiff¡  rþ   r<   c                ó|  € \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \         P                  ! 4       pVP                  R RR7       VP                  RRR7       VP                  R RRR7       \	        W\
        \        R7      ^8X  g   Q hR# )rC   rD   rF   rI   ÚZrö   Nrû   r®   s   &  r   ÚtestOneNodeLabelDiffÚ#TestSimilarity.testOneNodeLabelDiff¬  rþ   r<   c                ó¢  € \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       VP                  RRR7       \	        W\
        \        R7      ^8X  g   Q hR# )rC   rD   rF   rI   rG   rö   Nrû   r®   s   &  r   ÚtestOneExtraNodeÚTestSimilarity.testOneExtraNode·  s¤   € Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜sˆÔ#Ü" 2´fÌÔPÐTUÔUÐUÒUr<   c                ó  € \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP                  R RRR7       \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  R RRR7       VP                  R RRR7       \	        W\
        \        R7      ^8X  g   Q hR# )rC   rD   rF   rG   rI   úa-crö   Nrû   r®   s   &  r   ÚtestOneExtraEdgeÚTestSimilarity.testOneExtraEdgeÃ  sÖ   € Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ü" 2´fÌÔPÐTUÔUÐUÒUr<   c                óÊ  € \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  R RRR7       \         P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  R RRR7       VP                  R RRR7       \	        W\
        \        R7      ^8X  g   Q hR# )rC   rD   rF   rI   rG   r  rö   Nrû   r®   s   &  r   ÚtestOneExtraNodeAndEdgeÚ&TestSimilarity.testOneExtraNodeAndEdgeÒ  s¶   € Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ü�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ü" 2´fÌÔPÐTUÔUÐUÒUr<   c                óŽ  € \        4       p\        P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP	                  R RRR7       VP	                  RRRR7       VP	                  RRRR7       \        W\        \        R7      ^8X  g   Q hR	# )
rC   rD   rF   rH   ÚErI   rK   úd-erö   N©rM   r   r-   rL   r/   r   r:   rA   r®   s   &  r   Ú
testGraph1ÚTestSimilarity.testGraph1ß  ó¢   € Ü‹^ˆÜ�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ü" 2´fÌÔPÐTUÔUÐUÒUr<   c                óÜ  € \        4       p\        P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP	                  R RRR7       VP	                  RRRR7       VP	                  RRRR7       VP	                  RRR	R7       \        W\        \        R
7      ^8X  g   Q hR# )rC   rD   rF   rG   rH   r  rI   rJ   úc-dzc-erö   Nr  r®   s   &  r   Ú
testGraph2ÚTestSimilarity.testGraph2ë  sÄ   € Ü‹^ˆÜ�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ü" 2´fÌÔPÐTUÔUÐUÒUr<   c                óx  € \        4       p\        P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP	                  R RRR7       VP	                  R RR	R7       VP	                  RRR
R7       VP	                  RRRR7       VP	                  RRRR7       VP	                  RRRR7       \        W\        \        R7      ^8X  g   Q hR# )rC   rD   rF   rG   rH   r  ÚFr   r  úa-dr  zd-fzd-gze-brö   Nr  r®   s   &  r   Ú
testGraph3ÚTestSimilarity.testGraph3ù  s  € Ü‹^ˆÜ�XŠX‹ZˆØ
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜sˆÔ#Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ø
�‰�C˜ EˆÔ*Ü" 2´fÌÔPÐTVÔVÐVÒVr<   c                óŽ  € \        4       p\        P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP	                  R RRR7       VP	                  RRRR7       VP	                  RRRR7       \        W\        \        R7      ^8X  g   Q hR	# )
rC   rD   rF   rG   rH   rI   rJ   r  rö   Nr  r®   s   &  r   Ú
testGraph4ÚTestSimilarity.testGraph4  r  r<   c                óŽ  € \        4       p\        P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP	                  R RRR7       VP	                  RRRR7       VP	                  R RRR7       \        W\        \        R7      ^8X  g   Q hR	# )
rC   rD   rF   rG   rH   rI   rJ   r  rö   Nr  r®   s   &  r   ÚtestGraph4_aÚTestSimilarity.testGraph4_a  r  r<   c                óŽ  € \        4       p\        P                  ! 4       pVP                  R R R7       VP                  RRR7       VP                  RRR7       VP                  RRR7       VP	                  R RRR7       VP	                  RRRR7       VP	                  RRRR7       \        W\        \        R7      ^8X  g   Q hR	# )
rC   rD   rF   rG   rH   rI   rJ   r   rö   Nr  r®   s   &  r   ÚtestGraph4_bÚTestSimilarity.testGraph4_b#  r  r<   Úsimrank_similarityc                óT  € \         P                  ! ^4      p^ ^ ^^R^R^R^R/^^ R^^^R^R^R/^^ R^R^^^R^R/^^ R^R^R^^^R/^^ R^R^R^R^^//pV! V4      pVP                  4        F*  w  rVV\        P                  ! WE,          RR7      8X  d   K*  Q h	  \         P
                  ! 4       pVP                  ^ RR7       VP                  ^RR7       VP                  ^R	R7       VP                  ^R
R7       VP                  ^RR7       VP                  . RO4       ^ ^ ^^R^R^R^R/^^ R^^^R^R^R/^^ R^R^^^R^R/^^ R^R^R^^^R/^^ R^R^R^R^^//pV! VRR7      pVP                  4        F*  w  rVV\        P                  ! WE,          RR7      8X  d   K*  Q h	  R# )rW   çˆàí“­IÙ?çÂ~$oCâ?çŠàí“­IÙ?rš   ©ÚabsÚUnivrD   ÚProfAÚProfBÚStudentAÚStudentBç        ç×(-fðÀ?ç”@<yX¡?gÐ�¦ŸwÚ?gç$=»?g¹PD—®¥?glÉ‹‘Ý•¶?gÔs¸,Õ?çš™™™™™é?)Úimportance_factorN©r^   rÃ   )r+   r    ©r,   r[   )r[   r,   )r    r   )r   r   ry   r   Úapproxrâ   rL   rÚ   )rb   r*  r   ÚexpectedÚactualÚkÚvs   &&     r   Ú test_simrank_no_source_no_targetÚ/TestSimilarity.test_simrank_no_source_no_target5  sd  € ä�NŠN˜1ÓˆàØ�1ØÐ%ØÐ%ØÐ%ØÐ%ðð ØÐ%Ø�1ØÐ%ØÐ%ØÐ%ðð ØÐ%ØÐ%Ø�1ØÐ%ØÐ%ðð ØÐ%ØÐ%ØÐ%Ø�1ØÐ%ðð ØÐ%ØÐ%ØÐ%ØÐ%Ø�1ðð;$
ˆñJ $ AÓ&ˆØ—N‘NÖ$‰DˆAØœŸš f¥i°TÔ:Ö:Ð:Ð:ñ %ô
 �JŠJ‹LˆØ	�
‰
�1˜Fˆ
Ô#Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Jˆ
Ô'Ø	�
‰
�1˜Jˆ
Ô'Ø	×ÑÒIÔJð ��1�a˜˜aÐ!3°Q¸¸QÐ@SÐTØ��3˜˜1˜aÐ!3°Q¸¸QÐ@SÐTØØÐ%ØÐ%Ø�1ØÐ&ØÐ&ðð ��3˜˜3 Ð#6¸¸1¸aÐASÐTØØÐ&ØÐ&ØÐ&ØÐ%Ø�1ðð
ˆñ( $ A¸Ô=ˆØ—N‘NÖ$‰DˆAØœŸš f¥i°TÔ:Ö:Ð:Ð:ó %r<   c           
     ó  € \         P                  ! ^4      p^ ^^R^R^R^R/pV! V^ R7      pV\        P                  ! VRR7      8X  g   Q h\         P                  ! 4       pVP                  ^ RR7       VP                  ^R	R7       VP                  ^R
R7       VP                  ^RR7       VP                  ^RR7       VP                  . RO4       ^ ^^R^R^R^R/pV! VR^ R7      pV\        P                  ! VRR7      8X  g   Q hR# )rW   r,  r-  r.  ©r
   rš   r/  r1  rD   r2  r3  r4  r5  r6  r7  r8  r9  ©r:  r
   Nr;  ©r   r   r   r=  râ   rL   rÚ   ©rb   r*  r   r>  r?  s   &&   r   Útest_simrank_source_no_targetÚ,TestSimilarity.test_simrank_source_no_targetƒ  s
  € ä�NŠN˜1ÓˆàˆqØÐ!ØÐ!ØÐ!ØÐ!ð
ˆñ $ A¨aÔ0ˆØœ6Ÿ=š=¨°TÔ:Ô:Ð:Ð:ô �JŠJ‹LˆØ	�
‰
�1˜Fˆ
Ô#Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Jˆ
Ô'Ø	�
‰
�1˜Jˆ
Ô'Ø	×ÑÒIÔJà�q˜!˜S !Ð%7¸¸CÀÐDWÐXˆá# A¸ÀQÔGˆØœ6Ÿ=š=¨°TÔ:Ô:Ð:Ò:r<   c           
     ó  € \         P                  ! ^4      p\         P                  ! V\        \	        R4      4      4      pR^RRRRRRRR	/pV! VRR
7      pV\
        P                  ! VRR7      8X  g   Q h\         P                  ! 4       pVP                  ^ RR7       VP                  ^RR7       VP                  ^RR7       VP                  ^RR7       VP                  ^RR7       VP                  . RO4       \        \	        \         P                  ! VR4      P                  4       4      4      p\         P                  ! W%4      pR^RRRRRRRR/pV! VRRR7      pV\
        P                  ! VRR7      8X  g   Q hR# )rW   ÚabcdeÚaÚbr,  Úcr-  Údr…   r.  rE  rš   r/  r1  rD   r2  r3  r4  r5  rE   r6  r7  r8  r9  rF  Nr;  )r   r   Úrelabel_nodesÚdictÚ	enumerater   r=  râ   rL   rÚ   Úget_node_attributesÚvalues)rb   r*  r   r>  r?  Únode_labelss   &&    r   Útest_simrank_noninteger_nodesÚ,TestSimilarity.test_simrank_noninteger_nodesŸ  se  € ä�NŠN˜1ÓˆÜ×Ò˜Q¤¤Y¨wÓ%7Ó 8Ó9ˆà�ØÐ#ØÐ#ØÐ#ØÐ#ð
ˆñ $ A¨cÔ2ˆØœ6Ÿ=š=¨°TÔ:Ô:Ð:Ð:ô �JŠJ‹LˆØ	�
‰
�1˜Fˆ
Ô#Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Jˆ
Ô'Ø	�
‰
�1˜Jˆ
Ô'Ø	×ÑÒIÔJÜœ9¤R×%;Ò%;¸A¸wÓ%G×%NÑ%NÓ%PÓQÓRˆÜ×Ò˜QÓ,ˆð �AØ�SØÐ'Ø˜ØÐ+ð
ˆñ $ A¸ÀVÔLˆØœ6Ÿ=š=¨°TÔ:Ô:Ð:Ò:r<   c                óò  € \         P                  ! ^4      p^pV! V^ ^ R7      pV\        P                  ! VRR7      8X  g   Q h\         P                  ! 4       pVP                  ^ RR7       VP                  ^RR7       VP                  ^RR7       VP                  ^RR7       VP                  ^R	R7       VP                  . RO4       R
pV! VR^ ^R7      pV\        P                  ! VRR7      8X  g   Q hR# )rW   ©r
   Útargetrš   r/  r1  rD   r2  r3  r4  r5  r7  r9  )r:  r
   r[  gñhãˆµøä>Nr;  rG  rH  s   &&   r   Útest_simrank_source_and_targetÚ-TestSimilarity.test_simrank_source_and_targetÄ  sØ   € ä�NŠN˜1ÓˆØˆÙ# A¨a¸Ô:ˆØœ6Ÿ=š=¨°TÔ:Ô:Ð:Ð:ô �JŠJ‹LˆØ	�
‰
�1˜Fˆ
Ô#Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Gˆ
Ô$Ø	�
‰
�1˜Jˆ
Ô'Ø	�
‰
�1˜Jˆ
Ô'Ø	×ÑÒIÔJà%ˆñ $ A¸ÀQÈqÔQˆØœ6Ÿ=š=¨°TÔ:Ô:Ð:Ò:r<   Úalgc                ó€   € \         P                  ! ^4      p\        P                  ! \         P                  W^
R7       R# )rW   )Úmax_iterationsN)r   r   r   r   ÚExceededMaxIterations)rb   r^  r   s   && r   Útest_simrank_max_iterationsÚ*TestSimilarity.test_simrank_max_iterationsÛ  s&   € ä�NŠN˜1ÓˆÜ�Š”b×.Ñ.°Àr×Jr<   c                óø   € \         P                  ! ^4      p\        P                  ! \         P                  RR7      ;_uu_ 4        \         P
                  ! V^
R7       RRR4       R#   + '       g   i     R# ; i)rW   úSource node 10 not in Gr   rE  N©r   r   r   r   r   r*  r÷   s   & r   Útest_simrank_source_not_foundÚ,TestSimilarity.test_simrank_source_not_foundà  óF   € Ü�NŠN˜1ÓˆÜ�]Š]œ2Ÿ?™?Ð2K×LÖLÜ×!Ò! !¨BÕ/÷ M×L×LÒLúó   ÁA(Á(A9	c                óø   € \         P                  ! ^4      p\        P                  ! \         P                  RR7      ;_uu_ 4        \         P
                  ! V^
R7       RRR4       R#   + '       g   i     R# ; i)rW   zTarget node 10 not in Gr   )r[  Nrf  r÷   s   & r   Útest_simrank_target_not_foundÚ,TestSimilarity.test_simrank_target_not_foundå  ri  rj  c           
     óH  € \         P                  ! ^4      p^ ^^R^R^R^R/p^ R^R^R^R^R/p\         P                  ! V^ R7      pV\        P                  ! VRR	7      8X  g   Q hV\        P                  ! VR
R	7      8w  g   Q hV\        P                  ! VRR	7      8X  g   Q h\         P
                  P                  V^ R7      pV\        P                  ! VRR	7      8X  g   Q hV\        P                  ! VR
R	7      8w  g   Q hV\        P                  ! VRR	7      8X  g   Q hR# )rW   gL†Z±?Ù?gœ£R9Y@â?g�£R9Y@â?r§   çô©I˜CÙ?çŽÎ«cAâ?rE  çH¯¼šò×z>r/  rZ   gü©ñÒMbP?N)r   r   r*  r   r=  Ú
similarityÚ_simrank_similarity_python)rb   r   Úexpected_python_tol4Úexpected_numpy_tol4r?  s   &    r   Útest_simrank_between_versionsÚ,TestSimilarity.test_simrank_between_versionsê  s!  € Ü�NŠN˜1Óˆð ˆqØÐ ØÐ!ØÐ!ØÐ ð 
Ðð ˆsØÐ!ØÐ ØÐ ØÐ!ð
Ðô ×&Ò& q°Ô3ˆØ"¤f§m¢m°FÀÔ&EÔEÐEÐEà#¤v§}¢}°VÀÔ'FÔFÐFÐFØ#¤v§}¢}°VÀÔ'FÔFÐFÐFä—‘×9Ñ9¸!ÀAÐ9ÓFˆØ#¤v§}¢}°VÀÔ'FÔFÐFÐFà"¤f§m¢m°FÀÔ&EÔEÐEÐEØ"¤f§m¢m°FÀÔ&EÔEÐEÒEr<   c                óú   € \         P                  ! ^4      p\        P                  . RO. RO. RO. RO. RO.4      p\         P                  P                  V4      p\        P                  P                  W#RR7       R# )	rW   rq  ©ÚatolN©r§   ro  rp  rp  ro  )ro  r§   ro  rp  rp  )rp  ro  r§   ro  rp  )rp  rp  ro  r§   ro  )ro  rp  rp  ro  r§   ©r   r   rR   Úarrayrr  Ú_simrank_similarity_numpyÚtestingÚassert_allclose©rb   r   r>  r?  s   &   r   Ú&test_simrank_numpy_no_source_no_targetÚ5TestSimilarity.test_simrank_numpy_no_source_no_target  sj   € Ü�NŠN˜1ÓˆÜ—8‘8òòòòòð;$ó&
ˆôN —‘×8Ñ8¸Ó;ˆÜ
�
‰
×"Ñ" 8¸$Ð"Ö?r<   c                óä   € \         P                  ! ^4      p\        P                  . RO4      p\         P                  P                  V^ R7      p\        P                  P                  W#RR7       R# )rW   rE  rq  ry  Nr{  r|  r�  s   &   r   Ú#test_simrank_numpy_source_no_targetÚ2TestSimilarity.test_simrank_numpy_source_no_target4  sU   € Ü�NŠN˜1ÓˆÜ—8‘8òó
ˆô —‘×8Ñ8¸À1Ð8ÓEˆÜ
�
‰
×"Ñ" 8¸$Ð"Ö?r<   c                ó¼   € \         P                  ! ^4      pRp\         P                  P                  V^ ^ R7      p\        P
                  P                  W#RR7       R# )rW   r§   rZ  rq  ry  N)r   r   rr  r~  rR   r  r€  r�  s   &   r   Ú$test_simrank_numpy_source_and_targetÚ3TestSimilarity.test_simrank_numpy_source_and_targetB  sG   € Ü�NŠN˜1ÓˆØˆÜ—‘×8Ñ8¸À1ÈQÐ8ÓOˆÜ
�
‰
×"Ñ" 8¸$Ð"Ö?r<   c                ó<  € \         P                  ! 4       pVP                  ^ ^4       VP                  ^ ^4       VP                  ^ ^4       VP                  ^^4       VP                  ^^4       ^R^R^R^R/p\         P                  ! V^ ^^*R7      pW28X  g   Q hR# )r   r¢   g      À?r*   N©r   r-   r/   Úpanther_similarity©rb   r   r>  Úsims   &   r   Ú"test_panther_similarity_unweightedÚ1TestSimilarity.test_panther_similarity_unweightedH  s‰   € Ü�HŠH‹JˆØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ�s˜A˜s A s¨A¨uÐ5ˆÜ×#Ò# A q°a¸bÔAˆØŒÐŠr<   c                óR  € \         P                  ! 4       pVP                  R R^R7       VP                  R R^R7       VP                  R R^R7       VP                  RRRR7       VP                  RR^R7       RRRRRRRR	/p\         P                  ! VR ^R
^*R7      pW28X  g   Q hR# )Úv1Úv2)ÚwÚv3Úv4r›   Úv5g      è?r¢   g      Ð?r”  )r   Úweightr   Nr‹  r�  s   &   r   Ú test_panther_similarity_weightedÚ/TestSimilarity.test_panther_similarity_weightedS  sŸ   € Ü�HŠH‹JˆØ	�
‰
�4˜ ˆ
Ô#Ø	�
‰
�4˜ ˆ
Ô#Ø	�
‰
�4˜ ˆ
Ô#Ø	�
‰
�4˜ ˆ
Ô%Ø	�
‰
�4˜ ˆ
Ô#Ø˜$  c¨4°°d¸DÐAˆÜ×#Ò# A t¸À3ÈRÔPˆØŒÐŠr<   c                ó  € \         P                  ! 4       pVP                  . RO4       \        P                  ! \         P
                  RR7      ;_uu_ 4        \         P                  ! V^
R7       RRR4       R#   + '       g   i     R# ; i)r   re  r   rE  N©r^   rÃ   )r   r    r]   r<  )r   r-   rÚ   r   r   r   rŒ  r÷   s   & r   Ú(test_panther_similarity_source_not_foundÚ7TestSimilarity.test_panther_similarity_source_not_found^  sR   € Ü�HŠH‹JˆØ	×ÑÒAÔBÜ�]Š]œ2Ÿ?™?Ð2K×LÖLÜ×!Ò! !¨BÕ/÷ M×L×LÒLús   ÁA:Á:B	c                ó*  € \         P                  ! 4       pVP                  \        ^4      4       \        P
                  ! \         P                  RR7      ;_uu_ 4        \         P                  ! V^R7       RRR4       R#   + '       g   i     R# ; i)rW   zAPanther similarity is not defined for the isolated source node 1.r   rE  N)r   r-   r.   Úranger   r   ÚNetworkXUnfeasiblerŒ  r÷   s   & r   Ú test_panther_similarity_isolatedÚ/TestSimilarity.test_panther_similarity_isolatedd  sc   € Ü�HŠH‹JˆØ	×Ñœ˜q›Ô"Ü�]Š]Ü×!Ñ!ØU÷
ö 
ô ×!Ò! !¨AÕ.÷	
÷ 
÷ 
ò 
ús   ÁBÂB	Ú	num_pathsr
   c                ó†  a€ \         P                  ! . RO4      p/ p\         P                  ! VV^VSR7      p\        V4      p\	        V4      V8X  g   Q h\
        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       g   Q h\        VS,          4      \        \        V4      4      8X  g   Q hR# )r   )r   Ú	index_mapr
   c              3   ó:   <"  € T F  q^ ,          S8H  x € K  	  R# 5ir(   r)   )r#   rÏ   r
   s   & €r   r%   ÚGTestSimilarity.test_generate_random_paths_with_start.<locals>.<genexpr>  s   øé € Ð1©5 a�Q•4˜6–>«5ùs   ƒFTNrœ  )r   r-   r   r0   r!   r1   r¸   r   )rb   r¤  r
   r   r¦  r   r3   s   &&f    r   Ú%test_generate_random_paths_with_startÚ4TestSimilarity.test_generate_random_paths_with_startm  s¢   ø€ ô �HŠHÒ=Ó>ˆØˆ	ä×+Ò+ØØØØØô
ˆô �X“ˆô �5‹z˜YÔ&Ð&Ð&ç‹sÔ1©5Ó1�s�sŠsÔ1©5Ó1×1Ò1Ð1Ð1ô �i Õ'Ó(¬D´°yÓ1AÓ,BÔBÐBÒBr<   c                óÂ  € / p^
p^p\         P                  ! 4       pVP                  ^ ^4       VP                  ^ ^4       VP                  ^ ^4       VP                  ^^4       VP                  ^^4       \         P                  ! WBW1^*R7      p. RO. RO. RO. RO. RO. RO. RO. RO. R	O. R
O.
p^ 0 Rm^0 Rm^0 Rm^0 Rm^^^0/pV\	        V4      8X  g   Q hWq8X  g   Q hR# )é
   ©r   r¦  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[   rW   rh   é   é   >   r+   r,   r[   rW   r®  r\   >   r+   r,   r    rh   r®  r¯  r\   >   r   r    r[   rW   r¯  ©r   r-   r/   r   r0   ©rb   r¦  r¤  r   r   r3   rÎ   Úexpected_maps   &       r   Ú%test_generate_random_paths_unweightedÚ4TestSimilarity.test_generate_random_paths_unweighted„  sé   € Øˆ	Øˆ	ØˆÜ�HŠH‹JˆØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔÜ×(Ò(Ø kÈRô
ˆò ÚÚÚÚÚÚÚÚÚð
ˆð Ò'ØÒ!ØÒ$ØŠØ��1ˆvð
ˆð ¤ e£Ô,Ð,Ð,ØÔ(Ð(Ò(r<   c                ó  € / p^
p^p\         P                  ! 4       pVP                  RRRR7       VP                  RRRR7       VP                  RRRR7       VP                  RR	R
R7       VP                  RRRR7       VP                  RRRR7       \         P                  ! WBW1^*R7      p. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.
pR0 RmR0 RmR0 RmR0 RmR0 RmR	0 Rm/pV\	        V4      8X  g   Q hWq8X  g   Q hR# )r¬  rM  rN  g333333ã?©r˜  rO  r¡   rP  r›   r…   gffffffæ?ÚfgÍÌÌÌÌÌì?g333333Ó?r­  N)rP  rO  r·  rO  rP  rM  rN  )r…   rO  r·  rO  r·  rO  r…   )rP  rM  rN  rM  rN  rM  rO  )rN  rM  rP  rM  rN  rM  rN  )rP  rM  rN  rM  rN  rM  rP  )rP  rM  rN  rM  rN  rM  rN  )r·  rO  r·  rO  r·  rO  r…   )rP  rM  rP  rM  rN  rM  rN  )r…   rO  r·  rO  r…   rO  rP  >   r   r,   r    r[   rW   rh   r¯  r\   >   r   r+   r,   rW   r®  r\   >   r   r+   r®  r\   >   r   r,   r    r[   rW   rh   r¯  >   r+   r®  r\   r°  r±  s   &       r   Ú#test_generate_random_paths_weightedÚ2TestSimilarity.test_generate_random_paths_weighted¨  s  € Øˆ	Øˆ	ØˆÜ�HŠH‹JˆØ	�
‰
�3˜ Cˆ
Ô(Ø	�
‰
�3˜ Cˆ
Ô(Ø	�
‰
�3˜ Cˆ
Ô(Ø	�
‰
�3˜ Cˆ
Ô(Ø	�
‰
�3˜ Cˆ
Ô(Ø	�
‰
�3˜ Cˆ
Ô(Ü×(Ò(Ø kÈRô
ˆò
 0Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/Ú/ð
ˆð Ò)ØÒ#Ø’ØÒ&ØÒ&Ø’ð
ˆð ¤ e£Ô,Ð,Ð,ØÔ(Ð(Ò(r<   c                ó˜   € \         P                  ! R.4      p\         P                  ! 4       p\         P                  ! W4      ^8X  g   Q hR# ©r   Nr½   ©r   râ   r   r®   s   &  r   Ú&test_one_node_one_loop_and_empty_graphÚ5TestSimilarity.test_one_node_one_loop_and_empty_graphÏ  s6   € Ü�ZŠZ˜˜Ó!ˆÜ�ZŠZ‹\ˆÜ×%Ò% bÓ-°Ô2Ð2Ò2r<   c                óú   € \         P                  ! RR.4      p\         P                  ! V\         P                  ! 4       4      ^8X  g   Q h\         P                  ! V\         P                  ! 4       4      ^8X  g   Q hR# r»  )r   rñ   r   râ   )rb   rd   s   & r   Ú'test_one_node_two_loops_and_empty_graphÚ6TestSimilarity.test_one_node_two_loops_and_empty_graphÔ  sX   € Ü�_Š_˜f fÐ-Ó.ˆÜ×%Ò% b¬"¯*ª*«,Ó7¸1Ô<Ð<Ð<Ü×%Ò% b¬"¯/ª/Ó*;Ó<ÀÔAÐAÒAr<   c                ó˜   € \         P                  ! RR.4      p\         P                  ! V\         P                  ! 4       4      ^8X  g   Q hR# )r   Nr½   r¾   r¼  r÷   s   & r   Útest_two_directed_loopsÚ&TestSimilarity.test_two_directed_loopsÙ  s6   € Ü�JŠJ˜ Ð'Ó(ˆÜ×%Ò% a¬¯ª«Ó6¸!Ô;Ð;Ò;r<   c                ó  € RRr!\         P                  ! 4       pVP                  W34       VP                  W3.4       \         P                  ! 4       pVP                  W!34       VP                  W3.4       W43 FI  pV F  pWeP                  V,          R&   K  	  VP
                   F  pWuP
                  V,          R&   K  	  KK  	  R p\         P                  ! W4WˆR7      ^8X  g   Q h\         P                  ! WCWˆR7      ^8X  g   Q hR# )z_G2 has edge (a,b) and G3 has edge (a,a) but node order for G2 is (a,b)
while for G3 it is (b,a)rC   rF   r{   c                 ó
   € W8H  # r6   r)   )r´   Úys   &&r   Ú
user_matchÚETestSimilarity.test_symmetry_with_custom_matching.<locals>.user_matchî  s	   € Ø‘6ˆMr<   rö   N)r   r-   r.   rÚ   rx   rƒ   r   )	rb   rM  rN  rj   rk   r   rz   r…   rÈ  s	   &        r   Ú"test_symmetry_with_custom_matchingÚ1TestSimilarity.test_symmetry_with_custom_matchingÝ  sö   € ð �Cˆ1Ü�XŠX‹ZˆØ
×Ñ˜1˜&Ô!Ø
×Ñ˜A˜6˜(Ô#Ü�XŠX‹ZˆØ
×Ñ˜1˜&Ô!Ø
×Ñ˜A˜6˜(Ô#Ø“ˆAÛ�Ø%&—‘˜•
˜6Ó"ñ à—W”W�Ø%&—‘˜•
˜6Ó"ó ñ ò	ô ×"Ò" 2°jÔXØôð	
ðô ×"Ò" 2°jÔXØôð	
òr<   c           	     óz  € \         P                  ! 4       pVP                  ^ ^4       VP                  ^ ^4       VP                  ^ ^4       VP                  ^^4       VP                  ^^4       \         P                  ! V^ ^^^^*R7      p\	        V4      ^ 8”  g   Q h^ V9  g   Q h\
        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q h\
        ;QJ d*    R VP                  4        4       F  '       d   K   RM	  RM! R VP                  4        4       4      '       g   Q hR# )z2Basic test for panther_vector_similarity function.©rH   r@  r   r   c              3   ó*   "  € T F	  qR9   x € K  	  R# 5i)r+   N©r+   r,   r    r[   r)   ©r#   Únodes   & r   r%   ÚFTestSimilarity.test_panther_vector_similarity_basic.<locals>.<genexpr>  s   é € Ð8±C¨D˜<Ö'³Cùs   ‚FTc              3   óN   "  € T F  p^ Tu;8*  ;'       d    ^8*  Mu x € K  	  R# 5ir(   r)   ©r#   Úscores   & r   r%   rÒ    ó   é € Ð=± u�1˜—?”? —?‘?³ùó   ‚%•%N©r   r-   r/   Úpanther_vector_similarityr!   r1   rU  ©rb   r   rŽ  s   &  r   Ú$test_panther_vector_similarity_basicÚ3TestSimilarity.test_panther_vector_similarity_basicú  sã   € ä�HŠH‹JˆØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔä×*Ò*¨1¨a°1¸ÀqÈrÔRˆä�3‹x˜!Œ|Ðˆ|Ø˜Œ|Ðˆ|ß‹sÑ8±CÓ8�s�sŠsÑ8±CÓ8×8Ò8Ð8Ð8ß‹sÑ=°·
±
´Ó=�s�sŠsÑ=°·
±
´Ó=×=Ò=Ð=Ò=r<   c           	     óˆ  a€ \         P                  ! 4       pVP                  ^ ^4       VP                  ^ ^4       VP                  ^ ^4       VP                  ^^4       VP                  ^^4       \         P                  ! V^ ^^^^*R7      o\	        S4      ^8X  g   Q h^ S9  g   Q h\
        ;QJ d    V3R lR 4       F  '       d   K   RM	  RM! V3R lR 4       4      '       g   Q h\
        ;QJ d*    R SP                  4        4       F  '       d   K   RM	  RM! R SP                  4        4       4      '       g   Q hR# )z5Test panther_vector_similarity with unweighted graph.rÍ  c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5ir6   r)   ©r#   rÑ  rŽ  s   & €r   r%   ÚKTestSimilarity.test_panther_vector_similarity_unweighted.<locals>.<genexpr>  s   øé € Ð8©< 4˜3–;«<ùó   ƒFTc              3   óN   "  € T F  p^ Tu;8*  ;'       d    ^8*  Mu x € K  	  R# 5ir(   r)   rÔ  s   & r   r%   rà    rÖ  r×  NrÏ  rØ  rÚ  s   & @r   Ú)test_panther_vector_similarity_unweightedÚ8TestSimilarity.test_panther_vector_similarity_unweighted
  sä   ø€ ä�HŠH‹JˆØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔä×*Ò*¨1¨a°1¸ÀqÈrÔRˆä�3‹x˜1Œ}Ðˆ}Ø˜Œ|Ðˆ|ß‹sÔ8©<Ó8�s�sŠsÔ8©<Ó8×8Ò8Ð8Ð8ß‹sÑ=°·
±
´Ó=�s�sŠsÑ=°·
±
´Ó=×=Ò=Ð=Ò=r<   c           
     óž  a€ \         P                  ! 4       pVP                  RR^R7       VP                  RR^R7       VP                  RR^R7       VP                  RRRR7       VP                  RR^R7       \         P                  ! VR^^^R^*R	7      o\	        S4      ^8X  g   Q hRS9  g   Q h\
        ;QJ d*    R
 SP                  4        4       F  '       d   K   RM	  RM! R
 SP                  4        4       4      '       g   Q h\
        ;QJ d    V3R lR 4       F  '       d   K   RM	  RM! V3R lR 4       4      '       g   Q hR# )z3Test panther_vector_similarity with weighted graph.r’  r“  r¶  r•  r–  r›   r—  r˜  )rH   r@  r   r˜  r   c              3   óN   "  € T F  p^ Tu;8*  ;'       d    ^8*  Mu x € K  	  R# 5ir(   r)   rÔ  s   & r   r%   ÚITestSimilarity.test_panther_vector_similarity_weighted.<locals>.<genexpr>)  rÖ  r×  FTc              3   ó,   <"  € T F	  qS9   x € K  	  R # 5ir6   r)   rß  s   & €r   r%   rç  *  s   øé € Ð>Ñ+= 4˜3–;Ó+=ùrá  N)r“  r•  r–  rØ  rÚ  s   & @r   Ú'test_panther_vector_similarity_weightedÚ6TestSimilarity.test_panther_vector_similarity_weighted  s  ø€ ä�HŠH‹JˆØ	�
‰
�4˜ aˆ
Ô(Ø	�
‰
�4˜ aˆ
Ô(Ø	�
‰
�4˜ aˆ
Ô(Ø	�
‰
�4˜ cˆ
Ô*Ø	�
‰
�4˜ aˆ
Ô(ä×*Ò*Øˆt�q˜A¨1°XÀBô
ˆô �3‹x˜1Œ}Ðˆ}Ø˜3ŒÐˆß‹sÑ=°·
±
´Ó=�s�sŠsÑ=°·
±
´Ó=×=Ò=Ð=Ð=ß‹sÔ>Ñ+=Ó>�s�sŠsÔ>Ñ+=Ó>×>Ò>Ð>Ò>r<   c                ó  € \         P                  ! 4       pVP                  . RO4       \        P                  ! \         P
                  4      ;_uu_ 4        \         P                  ! V^
R7       RRR4       R#   + '       g   i     R# ; i)z=Test panther_vector_similarity with non-existent source node.rE  Nrœ  )r   r-   rÚ   r   r   r   rÙ  r÷   s   & r   Ú/test_panther_vector_similarity_source_not_foundÚ>TestSimilarity.test_panther_vector_similarity_source_not_found,  sN   € ä�HŠH‹JˆØ	×ÑÒAÔBä�]Š]œ2Ÿ?™?×+Õ+Ü×(Ò(¨°2Õ6÷ ,×+×+Ò+ús   ÁA8Á8B		c                óJ  € \         P                  ! 4       pVP                  \        ^4      4       VP	                  ^ ^4       \
        P                  ! \         P                  4      ;_uu_ 4        \         P                  ! V^R7       RRR4       R#   + '       g   i     R# ; i)z9Test panther_vector_similarity with isolated source node.rE  N)	r   r-   r.   r   r/   r   r   r¡  rÙ  r÷   s   & r   Ú'test_panther_vector_similarity_isolatedÚ6TestSimilarity.test_panther_vector_similarity_isolated4  sa   € ä�HŠH‹JˆØ	×Ñœ˜q›Ô"Ø	�
‰
�1�aÔä�]Š]œ2×0Ñ0×1Õ1Ü×(Ò(¨°1Õ5÷ 2×1×1Ò1ús   Á.BÂB"	c           	     óø   € \         P                  ! ^4      p\        P                  ! \         P                  4      ;_uu_ 4        \         P
                  ! V^ ^^R7       RRR4       R#   + '       g   i     R# ; i)z%Test raises when D > number of nodes.)rH   r@  N©r   r_   r   r   r¡  rÙ  r÷   s   & r   Ú*test_panther_vector_similarity_too_large_DÚ9TestSimilarity.test_panther_vector_similarity_too_large_D=  sH   € ä�MŠM˜!Óˆä�]Š]œ2×0Ñ0×1Õ1Ü×(Ò(¨¨A°°aÕ8÷ 2×1×1Ò1ús   ÁA(Á(A9	c                óö   € \         P                  ! ^4      p\        P                  ! \         P                  4      ;_uu_ 4        \         P
                  ! V^ ^R7       RRR4       R#   + '       g   i     R# ; i)z%Test raises when k > number of nodes.)r@  Nrò  r÷   s   & r   Ú*test_panther_vector_similarity_too_large_kÚ9TestSimilarity.test_panther_vector_similarity_too_large_kD  sF   € ä�MŠM˜!Óˆä�]Š]œ2×0Ñ0×1Õ1Ü×(Ò(¨¨A°Õ3÷ 2×1×1Ò1ús   ÁA'Á'A8	c                óà   € \         P                  ! 4       pVP                  ^ ^4       \         P                  ! V^ ^^^*R7      p\	        V4      ^8X  g   Q h^V9   g   Q hV^,          ^ 8”  g   Q hR# )z7Test panther_vector_similarity with a very small graph.)rH   r@  r   N)r   r-   r/   rÙ  r!   rÚ  s   &  r   Ú*test_panther_vector_similarity_small_graphÚ9TestSimilarity.test_panther_vector_similarity_small_graphK  s^   € ä�HŠH‹JˆØ	�
‰
�1�aÔä×*Ò*¨1¨a°1¸ÀÔCˆä�3‹x˜1Œ}Ðˆ}Ø�CŒxˆˆxØ�1�v˜ŒzÐŠzr<   c                óÒ   € \         P                  ! 4       pVP                  . RO4       \         P                  ! V^ ^^^*R7      p\         P                  ! V^ ^^^*R7      pW#8X  g   Q hR# )z4Test that results are deterministic with fixed seed.)rH   r   r   Nrœ  )r   r-   rÚ   rÙ  )rb   r   Úsim1Úsim2s   &   r   Ú,test_panther_vector_similarity_deterministicÚ;TestSimilarity.test_panther_vector_similarity_deterministicV  sV   € ä�HŠH‹JˆØ	×ÑÒAÔBä×+Ò+¨A¨q°AÀ1È2ÔNˆä×+Ò+¨A¨q°AÀ1È2ÔNˆàŒ|ÐŠ|r<   c                óB  € \         P                  ! R4       \        P                  ! 4       pVP	                  . RO4       \        P
                  ! VR^^^*R7      pRV9  g   Q h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q hR# )	z/Test panther_similarity with string node names.r   rC   )r@  r   r   c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir6   ©Ú
isinstanceÚstrrÐ  s   & r   r%   ÚFTestSimilarity.test_panther_similarity_string_nodes.<locals>.<genexpr>j  ó   é € Ð9±S¨T”:˜d¤C×(Ð(³Sùó   ‚FTN©rØ   rá   rà   rÞ   )r   r   r   r-   rÚ   rŒ  r1   rÚ  s   &  r   Ú$test_panther_similarity_string_nodesÚ3TestSimilarity.test_panther_similarity_string_nodesa  su   € ä×Ò˜GÔ$Ü�HŠH‹JˆØ	×ÑÒIÔJä×#Ò# A s¨a¸QÀRÔHˆà˜#Œ~Ðˆ~ß‹sÑ9±SÓ9�s�sŠsÑ9±SÓ9×9Ò9Ð9Ò9r<   c           	     óD  € \         P                  ! R4       \        P                  ! 4       pVP	                  . RO4       \        P
                  ! VR^^^^*R7      pRV9  g   Q h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q hR# )	z6Test panther_vector_similarity with string node names.r   rC   rÍ  c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir6   r  rÐ  s   & r   r%   ÚMTestSimilarity.test_panther_vector_similarity_string_nodes.<locals>.<genexpr>u  r  r  FTNr  )r   r   r   r-   rÚ   rÙ  r1   rÚ  s   &  r   Ú+test_panther_vector_similarity_string_nodesÚ:TestSimilarity.test_panther_vector_similarity_string_nodesl  sx   € ä×Ò˜GÔ$Ü�HŠH‹JˆØ	×ÑÒIÔJä×*Ò*¨1¨c°Q¸!ÈÐQSÔTˆà˜#Œ~Ðˆ~ß‹sÑ9±SÓ9�s�sŠsÑ9±SÓ9×9Ò9Ð9Ò9r<   c                ó¬  € \         P                  ! R 4       \        P                  ! ^d4      pR F¡  p\        P                  ! V^V^*R7      p\        V4      V8X  g   Q RV R\        V4       R24       h^V9  g   Q R4       h\        P                  ! V^V^*R7      p\        V4      V8X  g   Q RV R\        V4       R24       h^V9  d   Kœ  Q R4       h	  R# )	r   )r
   r@  r   zpanther_similarity k=z
 returned z resultsz$Source node should not be in resultszpanther_vector_similarity k=N)r+   r,   r    r[   rW   r¬  )r   r   r   r_   rŒ  r!   rÙ  )rb   r   Úk_valÚresult_pantherÚresult_vectors   &    r   Ú5test_panther_similarity_k_parameter_returns_k_resultsÚDTestSimilarity.test_panther_similarity_k_parameter_returns_k_resultsw  sæ   € Ü×Ò˜GÔ$Ü�MŠM˜#Óˆã(ˆEÜ×2Ò2°1¸QÀ%ÈbÔQˆNÜ�~Ó&¨%Ô/ð Ø'¨ w¨j¼¸^Ó9LÐ8MÈXÐVóÐ/ð ˜NÔ*ÐRÐ,RÓRÐ*ä×8Ò8¸À1ÈÐTVÔWˆMÜ�}Ó%¨Ô.ð Ø.¨u¨g°ZÄÀMÓ@RÐ?SÐS[Ð\óÐ.ð ˜MÖ)ÐQÐ+QÓQÐ)ó )r<   r)   N)r+   r    r¬  r^   )MÚ__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚclassmethodrT   re   rl   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*  Ú
algorithmsrr  rs  Úsimrank_algsr   ÚmarkÚparametrizerB  rI  rW  r\  rb  rg  rl  rv  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  Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   rO   rO   G   sq  ø‡ € Øñ%ó ð%ò
Pò 0ò4
ò
ò#
òJ#
òJ1ò'YòRò0ò:0ò:0ò:0ò0
ò	Vò	Vò	Vò
VòVòVò
VòVòWò$
Vò
Vò
Vð 	×ÑØ
�‰× Ñ ×;Ñ;ð€Lð
 ‡[�[×ÑÐ1°<Ó@ñK;ó AðK;ðZ ‡[�[×ÑÐ1°<Ó@ñ;ó Að;ð6 ‡[�[×ÑÐ1°<Ó@ñ";ó Að";ðH ‡[�[×ÑÐ1°<Ó@ñ;ó Að;ð, ‡[�[×Ñ˜U LÓ1ñKó 2ðKò0ò
0ò
Fò<*@òX@ò@ò	ò	ò0ò/ð ‡[�[×Ñ˜[¨*Ó5Ø‡[�[×Ñ˜X vÓ.ñCó /ó 6ðCò*")òH%)òN3ò
Bò
<ò
ò:>ò >ò ?ò$7ò6ò9ò4ò	ò	ò	:ò	:÷Rð Rr<   rO   )r¬  Úfoo)r   Únetworkxr   Únetworkx.algorithms.similarityr   r   r   Únetworkx.generators.classicr   r   r   r	   r  r  r   Úfilterwarningsr4   r:   rA   rM   rO   r)   r<   r   Ú<module>r'     s…   ðÛ ã ÷ñ ÷
ó ð ‡�×Ñ˜ ;Ó/ñó 0ðð ‡�×ÑÐ4Ó5ñó 6ðò.òò	÷Ró Rr<   