Ë
    Ìi)Ö  ã                   ó:  — d Z ddlZddlZddlZddlZddlZ ej                  d«      Z ej                  d«      Z	ej                  d«        ej                  d«      Zdej                  d<    ej                  d	d
«      Zi dd“dd“dd“dd“ddddddddddddœ
“dd“dd“dd“dd“d d“d!d“d"d“d#dddddd$d%d%d&œddd'dd(œ
“d)d*“d+d“d,d*“d-d“d.ddd/œ¥Zej                   j#                  d0dded   fd1d2f«      d3„ «       Zej                   j#                  d4d5«      d6„ «       Zd7„ Zd8„ Zej                   j#                  d9d:«      ej                   j#                  d;ej,                  ej.                  f«      d<„ «       «       Zej                   j#                  d;ej,                  ej.                  f«      d=„ «       Zej                   j#                  d;ej,                  ej.                  f«      d>„ «       Zd?„ Zej                   j#                  d;ej,                  ej.                  f«      d@„ «       Zej                   j#                  d;ej,                  ej.                  f«      dA„ «       Zej                   j#                  d4ded!   ed!   gfdBdBdBgfdCdBdDgff«      ej                   j#                  d;ej,                  ej.                  f«      dE„ «       «       Zej                   j#                  d4ded)   ed)   gfdFdFdFgfdGd*dFgff«      ej                   j#                  d;ej,                  ej.                  f«      dH„ «       «       ZdI„ Z dJ„ Z!dK„ Z"dL„ Z#dM„ Z$dN„ Z%ej                   j#                  ddO«      dP„ «       Z&ej                   j#                  dQddg«      dR„ «       Z'dS„ Z(dT„ Z)ejT                  dU„ «       Z+ej                   j#                  dVejX                  ejZ                  ej\                  ej^                  ej`                  ejb                  ejd                  ejf                  g«      dW„ «       Z4dX„ Z5dY„ Z6dZ„ Z7d[„ Z8d\„ Z9ej                   j#                  d9d]d^d_gd`fdadbgdcfdddegdffdgdhgdiff	«      ej                   j#                  djddkgf«      dl„ «       «       Z:ej                   j#                  d9d]d^d_gd`fdadbgdcfdddegdffdgdhgdiff	«      ej                   j#                  djddkgf«      dm„ «       «       Z;dn„ Z<do„ Z=dp„ Z>dq„ Z?dr„ Z@ej                   j#                  d;ej,                  ej.                  f«      ds„ «       ZAej                   j#                  dtdudvgdvff«      dw„ «       ZBej                   j#                  dtdudvgdvff«      dx„ «       ZCej                   j#                  djg dy¢ddkdzgf«      d{„ «       ZDd|„ ZEd}„ ZFej                   j#                  dGd~«      d„ «       ZGej                   j#                  d€d�gd‚gdƒgg d„¢d‚d*gg d…¢f«      d†„ «       ZHd‡„ ZIdˆ„ ZJd‰„ ZKdŠ„ ZLd‹„ ZMdŒ„ ZNd�„ ZOdŽ„ ZPd�„ ZQd�„ ZRd‘„ ZSd’„ ZTej                   j#                  d“d”g d•¢f«      d–„ «       ZUej                   j#                  d—d˜g d™¢f«      dš„ «       ZVd›„ ZWdœ„ ZXd�„ ZYej                   j#                  ddO«      dž„ «       ZZej                   j#                  ddO«      dŸ„ «       Z[d „ Z\d¡„ Z]d¢„ Z^d£„ Z_ej                   j#                  d¤ejÀ                  ejÂ                  f«      d¥„ «       Zbej                   j#                  d¤ejÀ                  ejÂ                  f«      d¦„ «       Zcd§„ Zdej                   j#                  d¨ ej.                  «       d©g ejÊ                  «       d	g ejÌ                  «       d	gf«      dª„ «       Zgej                   j#                  d¨ ej.                  «       d©g ejÊ                  «       d	g ejÌ                  «       d	gf«      d«„ «       Zhd¬„ Zid­„ Zjd®„ Zkej                   j#                  d¯d—d*id“d°id±d²id³dDid´dDif«      dµ„ «       Zlej                   j#                  d¶ejÀ                  ejX                  f«      d·„ «       Zmej                   j#                  d¸ddg«      ej                   j#                  d¹ejÂ                  ejÜ                  ejÞ                  ejà                  ejâ                  g«      dº„ «       «       Zrej                   j#                  dGg d»¢«      d¼„ «       Zsej                   j#                  d½d¾d¿g«      dÀ„ «       Zty)Áz,Unit tests for matplotlib drawing functions.é    NÚ
matplotlibÚnumpyÚPSzmatplotlib.pyplotFztext.usetexé   é   Únode_posÚnode_visibleTÚ
node_colorz#1f78b4Ú	node_sizei,  Ú
node_labelé   z#000000z
sans-serifÚnormalç      ð?Úcenter)
ÚsizeÚcolorÚfamilyÚweightÚalphaÚbackground_colorÚbackground_alphaÚh_alignÚv_alignÚbboxÚ
node_shapeÚoÚ
node_alphaÚnode_border_widthÚnode_border_colorÚfaceÚedge_visibleÚ
edge_widthÚ
edge_colorÚ
edge_labelÚround)r   r   r   )ÚboxstyleÚecÚfcç      à?)
r   r   r   r   r   r   r   r   ÚposÚrotateÚ
edge_styleú-Ú
edge_alphaÚedge_arrowstyleÚedge_arrowsizeÚarc3)Úedge_curvatureÚedge_source_marginÚedge_target_margin)Ú
param_nameÚparam_valueÚexpected)r
   ú#FF0000Úred)r
   r   Úlimec                 ó†  — t        j                  d«      }t        j                  |dd«       t        j	                  «       j                  d«      }t        j                  |fd|i| |i¤Ž t        j                  j                  |j                  «       d   j                  «       d   |«      sJ ‚t        j                  «        y )Nr   z#00FF00r   éo   Úcanvasr   )ÚnxÚ
path_graphÚset_node_attributesÚpltÚfigureÚadd_subplotÚdisplayÚmplÚcolorsÚ
same_colorÚget_childrenÚget_edgecolorsÚclose)r5   r6   r7   ÚGr=   s        úb/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/networkx/drawing/tests/test_pylab.pyÚ$test_display_arg_handling_node_colorrM   C   s”   € ô 	�‰�aÓ€AÜ×Ñ˜1˜i¨Ô1Ü�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�JˆqÑ=˜Ð= J°Ð#<Ò=Ü�:‰:× Ñ  ×!4Ñ!4Ó!6°qÑ!9×!HÑ!HÓ!JÈ1Ñ!MÈxÔXÐXÐXÜ‡I�I…Kó    )r6   r7   ))N)é   rO   rO   rO   )r)   )r)   r)   r)   r)   )Ún_alpha)r   r)   gUUUUUUÕ?ç      Ð?c           
      ó¶  — t        j                  d«      }t        j                  ||j                  «       D �ci c]  }|d|dz   z  “Œ c}d«       t        j                  «       j                  d«      }t        j                  ||| ¬«       t        |j                  «       d   j                  «       d d …df   |k(  «      sJ ‚t        j                  «        y c c}w )Nr   rO   rP   r<   )r=   r   r   é   )r>   r?   r@   ÚnodesrA   rB   rC   rD   ÚallrH   Úget_fcrJ   )r6   r7   rK   Únr=   s        rL   Ú$test_display_arg_handling_node_alpharX   T   s²   € ô 	�‰�aÓ€AÜ×Ñ˜1°q·w±w³yÖA°!˜q ! q¨1¡u¡+™~ÒAÀ9ÔMÜ�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜¨KÕ8ÜØ×ÑÓ˜aÑ ×'Ñ'Ó)ª!¨Q¨$Ñ/°8Ñ;ôð ð ô ‡I�I…Kùò Bs   ¸C
c            	      óà  — t        j                  d«      } t        j                  | | j                  «       D �ci c]  }|||f“Œ	 c}d«       t        j                  «       j                  d«      }t        j                  | |d¬«       t        j                  |j                  «       d   j                  «       j                  ddgddgddgddggk(  «      sJ ‚t        j                  «        y c c}w )	Nr   r*   r<   )r=   r   r   rO   é   rS   )r>   r?   r@   rT   rA   rB   rC   rD   ÚnprU   rH   Úget_offsetsÚdatarJ   )rK   rW   r=   s      rL   Útest_display_node_positionr^   g   sÈ   € Ü
�‰�aÓ€AÜ×Ñ˜1°!·'±'³)Ö<¨Q˜q 1 a &™yÒ<¸eÔDÜ�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜¨%Õ0Ü�6‰6Ø×ÑÓ˜aÑ ×,Ñ,Ó.×3Ñ3¸¸A¸ÀÀAÀÈÈAÈÐQRÐTUÐPVÐ7WÑWôð ð ô ‡I�I…Kùò =s   ¸C+
c            
      ó¢  — t        j                  «       } t        j                  | | j                  «       D ��ci c]  \  }}||f||z   dz  rdnd“Œ c}}d«       t        j                  «       j                  d«      }t        j                  | |d¬«       |j                  «       D �cg c](  }t        |t        j                  j                  «      r|‘Œ* c}d   }t        |j                  «       «      t        | j                  «       D ��cg c]  \  }}||z   dz  sŒd	‘Œ c}}«      k(  sJ ‚t        j!                  «        y c c}}w c c}w c c}}w )
NrZ   ú-|>r-   Ú
arrowstyler<   é
   )r=   r0   r   rO   )r>   Úkarate_club_graphÚset_edge_attributesÚedgesrA   rB   rC   rD   rH   Ú
isinstancerE   ÚcollectionsÚLineCollectionÚlenÚ	get_pathsÚsumrJ   )rK   ÚuÚvr=   ÚlÚlcs         rL   Útest_display_line_collectionrp   r   s  € Ü
×ÑÓ€AÜ×ÑØ	¸a¿g¹g»i×H±d°a¸ˆQ�ˆF˜a !™e qš[‘E¨cÑ1ÓHÈ,ôô �Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜°Õ3ð ×$Ñ$Ó&ö
àÜ�aœŸ™×7Ñ7Ô8ò 	
ò
ð ñ	
	€Bô
 ˆr�|‰|‹~Ó¤#°Q·W±W³Y×&N©T¨Q°À1ÀqÁ5ÈAÃ+¢qÓ&NÓ"OÒOÐOÐOÜ‡I�I…Kùó Iùò

ùó
 'Os   ¸E Â'-EÄ
EÄE)r#   r7   )©NÚblack©Úrr9   ©©r   r   ç        Úyellow©©r   rO   r   rO   r:   )r   Úblue)ú#0000FFr{   Ú
graph_typec                 óž  ‡— t        j                  d|¬«      }t        j                  |dd«       t        j	                  «       j                  d«      }t        j                  || |¬«       |j                  «       rP|j                  «       D �cg c]6  }t        |t        j                  j                  «      r|j                  «       ‘Œ8 }}nO|j                  D �cg c](  }t        |t        j                  j                  «      r|‘Œ* c}d   j!                  «       }t#        ˆfd„|D «       «      sJ ‚t        j%                  «        y c c}w c c}w )	NrS   ©Úcreate_usingr|   r   r<   )r#   r=   r   c              3   ó^   •K  — | ]$  }t         j                  j                  |‰«      –— Œ& y ­w©N)rE   rF   rG   )Ú.0Úcr7   s     €rL   ú	<genexpr>z1test_display_edge_single_color.<locals>.<genexpr>    s"   øè ø€ ÒB°aŒs�z‰z×$Ñ$ Q¨×1ÑBùs   ƒ*-)r>   r?   rd   rA   rB   rC   rD   Úis_directedrH   rf   rE   ÚpatchesÚFancyArrowPatchrV   rg   rh   Ú
get_colorsrU   rJ   )r#   r7   r}   rK   r=   ÚfrF   rn   s    `      rL   Útest_display_edge_single_colorr‹   ƒ   s  ø€ ô 	�‰�a jÔ1€AÜ×Ñ˜1˜i¨Ô1Ü�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜Z°Õ7Ø‡}�}„ð ×(Ñ(Ó*ö
àÜ˜!œSŸ[™[×8Ñ8Ô9ð �H‰H�Jð
ˆñ 
ð ×'Ñ'ö
àÜ˜!œSŸ_™_×;Ñ;Ô<ò ò
ð ñ	÷ ‰Z‹\ð	 	ô
 ÓB¸6ÔBÔBÐBÐBÜ‡I�I…Kùò
ùò
s   Â;EÃ-E
c                 óÂ  — t        j                  d| ¬«      }t        j                  |dddœd«       t        j	                  «       j                  d«      }t        j                  ||¬«       d	d
g}|j                  «       rP|j                  «       D �cg c]6  }t        |t        j                  j                  «      r|j                  «       ‘Œ8 }}nP|j                  D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ c}d   j!                  «       }t        j"                  j%                  ||«      sJ ‚t        j'                  «        y c c}w c c}w )NrS   r   r8   ©r   r   rO   ©©r   rO   ©rO   rZ   r   r<   ©r=   r9   r{   r   )r>   r?   rd   rA   rB   rC   rD   r†   rH   rf   rE   r‡   rˆ   rV   rg   rh   r‰   rF   rG   rJ   )r}   rK   Úaxr7   rŠ   rF   rn   s          rL   Ú!test_display_edge_multiple_colorsr“   ¤   s  € ä
�‰�a jÔ1€AÜ×Ñ˜1 y¸)ÑDÀgÔNÜ	�‰‹×	!Ñ	! #Ó	&€BÜ‡J�Jˆq˜ÕØ�vˆ€HØ‡}�}„ð —_‘_Ó&ö
àÜ˜!œSŸ[™[×8Ñ8Ô9ð �H‰H�Jð
ˆñ 
ð —~‘~ö
Ø¬°A´s·±×7UÑ7UÕ)VŠAò
à
ñç‰Z‹\ð 	ô �:‰:× Ñ  ¨Ô2Ð2Ð2Ü‡I�I…Kùò
ùò
s   Â;EÃ)EÄEc           	      óH  — t        j                  d| ¬«      }t        j                  ||j                  «       D �ci c]  }|||f“Œ	 c}d«       t        j                  «       j                  d«      }t        j                  ||¬«       |j                  «       r‚|j                  «       D �cg c]h  }t        |t        j                  j                  «      rB|j                  «       j                  dd d …f   |j                  «       j                  dd d …f   f‘Œj }}nƒ|j                   D �cg c])  }t        |t        j                   j"                  «      sŒ(|‘Œ+ c}d   }|j%                  «       D �cg c](  }|j                  dd d …f   |j                  dd d …f   f‘Œ* }}d	d
g}	d}
t'        ||	«      D ]I  \  }}|\  }}|\  }}t)        t+        ||z
  «      |
|
fk  «      rt)        t+        ||z
  «      |
|
fk  «      rŒIJ ‚ t        j-                  «        y c c}w c c}w c c}w c c}w )NrS   r   r*   r<   r‘   r   éþÿÿÿéÿÿÿÿ)©r   r   ©rO   rO   )r˜   ©rZ   rZ   gš™™™™™©?)r>   r?   r@   rT   rA   rB   rC   rD   r†   rH   rf   rE   r‡   rˆ   Úget_pathÚverticesrg   rh   rj   ÚziprU   ÚabsrJ   )r}   rK   rW   r’   rŠ   Ú
end_pointsrn   Úline_collectionÚpr7   Ú	thresholdÚaÚeÚ	act_startÚact_endÚ	exp_startÚexp_ends                    rL   Útest_display_edge_positionr¨   ¹   sô  € ä
�‰�a jÔ1€AÜ×Ñ˜1°!·'±'³)Ö<¨Q˜q 1 a &™yÒ<¸eÔDÜ	�‰‹×	!Ñ	! #Ó	&€BÜ‡J�Jˆq˜ÕØ‡}�}„ð —_‘_Ó&ö
àÜ˜!œSŸ[™[×8Ñ8Ô9ð �Z‰Z‹\×"Ñ" 1¢a 4Ñ(¨!¯*©*«,×*?Ñ*?ÀÂAÀÑ*FÒGð
ˆ
ñ 
ð —~‘~ö
Ø¬°A´s·±×7UÑ7UÕ)VŠAò
à
ñˆð <K×;TÑ;TÓ;Vö
Ø67ˆQ�Z‰Z˜š1˜Ñ˜qŸz™z¨"ªa¨%Ñ0Ò1ð
ˆ
ð 
ð !Ð"2Ð3€Hð €IÜ�J Ó)ò 
‰ˆˆ1ØÑˆ	�7ØÑˆ	�7Ü”3�y 9Ñ,Ó-°¸IÐ0FÑFÔGÌCÜ�˜'Ñ!Ó" i°Ð%;Ñ;õM
ð 	
ð 
ð
ô ‡I�I…Kùò5 =ùò
ùò
ùò
s   ºH
Â*A-HÄ()HÅHÅ.-Hc                  ó   — t        j                  «       } d„ } || «      }t        j                  «       j	                  d«      }t        j
                  | ||¬«       t        | j                  «       |j                  «       d   j                  «       j                  «      D ��ci c]  \  }}|t        |«      “Œ }}}| j                  «       D ]  }t        ||   ||   k(  «      rŒJ ‚ t        j                  «        y c c}}w )Nc                 ó0   — t        j                  | d¬«      S )Ni/Ë ©Úseed)r>   Úspring_layout©rK   s    rL   Úfixed_layoutz4test_display_position_function.<locals>.fixed_layoutÜ   s   € Ü×Ñ ¨Ô/Ð/rN   r<   )r   r=   r   )r>   rc   rA   rB   rC   rD   rœ   rT   rH   r\   r]   ÚtuplerU   rJ   )rK   r¯   r*   r’   rW   r    Úact_poss          rL   Útest_display_position_functionr²   Ù   sÖ   € Ü
×ÑÓ€Aò0ñ �q‹/€CÜ	�‰‹×	!Ñ	! #Ó	&€BÜ‡J�Jˆq˜<°Õ3ô !$ A§G¡G£I¨r¯©Ó/@ÀÑ/C×/OÑ/OÓ/Q×/VÑ/VÓ W÷Ù˜˜1ˆŒ5�‹8‰ð€Gñ ð �W‰W‹Yò )ˆÜ�3�q‘6˜W Q™ZÑ'Õ(Ð(Ð(ð)ä‡I�I…Kùós   Â!C:c                 óŽ  — t        j                  d| ¬«      }t        j                  |dddœd«       t        j                  d   }t        j
                  |dd|d	¬
«       t        j                  «       j                  d«      }t        j                  ||¬«       t        j                  j                  |¬«      }|j                  dd«       |j                  d«      |j                  d«      g}|j                  «       rP|j                  «       D �cg c]6  }t!        |t        j"                  j$                  «      r|j'                  «       ‘Œ8 }}nO|j(                  D �cg c](  }t!        |t        j(                  j*                  «      r|‘Œ* c}d   j-                  «       }t        j.                  j1                  |d   |j2                  d   d   «      sJ ‚t        j.                  j1                  |d   |j2                  d   d   «      sJ ‚t        j.                  j1                  ||«      sJ ‚t        j5                  «        y c c}w c c}w )NrS   r   r   rO   rŽ   r   Úplasmar   F)rT   r<   r‘   ©Úcmapr�   r�   )r>   r?   rd   rE   Ú	colormapsÚapply_matplotlib_colorsrA   rB   rC   rD   ÚcmÚScalarMappableÚset_climÚto_rgbar†   rH   rf   r‡   rˆ   Úget_facecolorrg   rh   r‰   rF   rG   re   rJ   )	r}   rK   r¶   r=   Úmapperr7   rŠ   rF   rn   s	            rL   Útest_display_edge_colormapsr¿   ë   sÍ  € ä
�‰�a jÔ1€AÜ×Ñ˜1 q°!Ñ4°hÔ?Ü�=‰=˜Ñ"€DÜ×Ñ˜q (¨G°TÀÕGÜ�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜Õ Ü�V‰V×"Ñ"¨Ð"Ó-€FØ
‡O�O�A�qÔØ—‘˜qÓ! 6§>¡>°!Ó#4Ð5€HØ‡}�}„ð ×(Ñ(Ó*ö
àÜ˜!œSŸ[™[×8Ñ8Ô9ð �O‰OÕð
ˆñ 
ð ×'Ñ'ö
àÜ˜!œSŸ_™_×;Ñ;Ô<ò ò
ð ñ	÷ ‰Z‹\ð	 	ô
 �:‰:× Ñ  ¨!¡¨a¯g©g°d©m¸GÑ.DÔEÐEÐEÜ�:‰:× Ñ  ¨!¡¨a¯g©g°d©m¸GÑ.DÔEÐEÐEÜ�:‰:× Ñ  ¨6Ô2Ð2Ð2Ü‡I�I…Kùò
ùò
s   Ä;H=Å-Ic                 óN  — t        j                  d| ¬«      }t        j                  |ddddœd«       t        j                  d   }t        j
                  |dd	|«       t        j                  «       j                  d
«      }t        j                  ||¬«       t        j                  j                  |¬«      }|j                  dd«       |j                  d«      |j                  d«      |j                  d«      g}|j                  D �cg c])  }t        |t        j                  j                   «      sŒ(|‘Œ+ c}d   j#                  «       }t        j$                  j'                  |d   |j(                  d   d	   «      sJ ‚t        j$                  j'                  |d   |j(                  d   d	   «      sJ ‚t        j$                  j'                  |d   |j(                  d   d	   «      sJ ‚t        j$                  j'                  ||«      sJ ‚t        j+                  «        y c c}w )NrS   r   r   r)   rO   ©r   rO   rZ   r   r´   r   r<   r‘   rµ   rZ   )r>   r?   r@   rE   r·   r¸   rA   rB   rC   rD   r¹   rº   r»   r¼   rg   rf   ÚPathCollectionrI   rF   rG   rT   rJ   )r}   rK   r¶   r=   r¾   r7   ÚsrF   s           rL   Útest_display_node_colormapsrÄ     s©  € ä
�‰�a jÔ1€AÜ×Ñ˜1 !¨°Ñ2°HÔ=Ü�=‰=˜Ñ"€DÜ×Ñ˜q (¨G°TÔ:Ü�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜Õ Ü�V‰V×"Ñ"¨Ð"Ó-€FØ
‡O�O�A�qÔØ—‘˜qÓ! 6§>¡>°#Ó#6¸¿¹ÀqÓ8IÐJ€Hà×%Ñ%öØ¬°A´s·±×7UÑ7UÕ)VŠòàñ	ç	‰Ó	ð ô �:‰:× Ñ  ¨!¡¨a¯g©g°a©j¸Ñ.AÔBÐBÐBÜ�:‰:× Ñ  ¨!¡¨a¯g©g°a©j¸Ñ.AÔBÐBÐBÜ�:‰:× Ñ  ¨!¡¨a¯g©g°a©j¸Ñ.AÔBÐBÐBÜ�:‰:× Ñ  ¨6Ô2Ð2Ð2Ü‡I�I…Kùòs   Ä
)H"Ä4H"é   Úwidthrb   c           	      ón  — t        j                  d|¬«      }t        j                  |dddœd«       t        j	                  «       j                  d«      }t        j                  || |¬«       |j                  «       rP|j                  «       D �cg c]6  }t        |t        j                  j                  «      r|j                  «       ‘Œ8 }}nXt        |j                  D �cg c](  }t        |t        j                  j                   «      r|‘Œ* c}d	   j#                  «       «      }||k(  sJ ‚y c c}w c c}w )
NrS   r   rÅ   rb   rŽ   rÆ   r<   )r"   r=   r   )r>   r?   rd   rA   rB   rC   rD   r†   rH   rf   rE   r‡   rˆ   Úget_linewidthÚlistrg   rh   Úget_linewidths)r6   r7   r}   rK   r=   rŠ   Úwidthsrn   s           rL   Útest_display_edge_widthrÌ     s	  € ô 	�‰�a jÔ1€AÜ×Ñ˜1 q°"Ñ5°wÔ?Ü�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜[°Õ8Ø‡}�}„ð ×(Ñ(Ó*ö
àÜ˜!œSŸ[™[×8Ñ8Ô9ð �O‰OÕð
ˆñ 
ô ð  ×+Ñ+öàÜ˜a¤§¡×!?Ñ!?Ô@ò òð ñ	÷  ‘Ó!ó
ˆð �XÒÐÑùò
ùòs   Â;D-Ã -D2ú:Ústylec           	      óè  — t        j                  d|¬«      }t        j                  |dddœd«       t        j	                  «       j                  d«      }t        j                  || |¬«       |j                  «       rP|j                  «       D �cg c]6  }t        |t        j                  j                  «      r|j                  «       ‘Œ8 }}n|ddd	œ}|j                  D �cg c](  }t        |t        j                  j                  «      r|‘Œ* c}d
   j!                  «       D �	cg c]  }	||	d
   |	d   �t#        |	d   «      nd f   ‘Œ! }}	||k(  sJ ‚t        j%                  «        y c c}w c c}w c c}	w )NrS   r   r-   rÍ   rŽ   rÎ   r<   )r,   r=   ))r   N)r   )rO   gffffffú?r   rO   )r>   r?   rd   rA   rB   rC   rD   r†   rH   rf   rE   r‡   rˆ   Úget_linestylerg   rh   Úget_linestylesr°   rJ   )
r6   r7   r}   rK   r=   rŠ   ÚstylesÚ
linestylesrn   rÃ   s
             rL   Útest_display_edge_stylerÔ   <  sR  € ô 	�‰�a jÔ1€AÜ×Ñ˜1 s°CÑ8¸'ÔBÜ�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜[°Õ8Ø‡}�}„ð ×(Ñ(Ó*ö
àÜ˜!œSŸ[™[×8Ñ8Ô9ð �O‰OÕð
ˆñ 
ð "%°cÑ:ˆ
ð
  ×+Ñ+öàÜ˜a¤§¡×!?Ñ!?Ô@ò òð ñ	÷  ‘Ó!ö
àð ˜˜!™¨Q¨q©TÐ-=œe A a¡DœkÀ4ÐHÓIð
ˆð 
ð �XÒÐÐÜ‡I�I…Kùò#
ùòùò
s   Â;E%Ã -E*Ä#$E/c                  ó  — t        j                  d«      } t        j                  «       j	                  d«      }t        j
                  | |ddi¬«       |j                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ }}t        | j                  «       |«      D ]8  \  }}|j                  «       t        |«      k(  sJ ‚|j                  «       dk(  rŒ8J ‚ t        j!                  «        y c c}w )Nr   r<   r   é   )r=   r   g      4@)r>   r?   rA   rB   rC   rD   rH   rf   rE   ÚtextÚTextrœ   rT   Úget_textÚstrÚget_sizerJ   )rK   r=   ÚtÚlabelsrW   rn   s         rL   Útest_display_node_labelsrÞ   _  sÄ   € Ü
�‰�aÓ€AÜ�Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜¨V°R¨LÕ9Ø×,Ñ,Ó.ÖO�A´*¸QÄÇÁÇÁÕ2NŠaÐO€FÐOÜ�A—G‘G“I˜vÓ&ò $‰ˆˆ1Ø�z‰z‹|œs 1›vÒ%Ð%Ð%Ø�z‰z‹|˜tÓ#Ð#Ð#ð$ô ‡I�I…Kùò	 Ps   Á%)C?ÂC?c                  ó¼  — t        j                  d«      } t        j                  «       j	                  d«      }t        j
                  | | j                  «       D ��ci c]  \  }}||fd||z   i“Œ c}}«       t        j                  | |ddid ¬«       |j                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ }}t        |«       t        | j                  «       |«      D ]A  \  }}|j                  «       t!        |d   |d   z   «      k(  sJ ‚|j#                  «       dk(  rŒAJ ‚ t        j%                  «        y c c}}w c c}w )	Nr   r<   Úlabelr   rt   )r=   r$   r   r   rO   )r>   r?   rA   rB   rC   rd   re   rD   rH   rf   rE   r×   rØ   Úprintrœ   rÙ   rÚ   Ú	get_colorrJ   )rK   r=   rl   rm   rÜ   rÝ   r£   rn   s           rL   Útest_display_edge_labelsrã   j  s  € Ü
�‰�aÓ€AÜ�Z‰Z‹\×%Ñ% cÓ*€Fô ×Ñ˜1ÀAÇGÁGÃI×N¹D¸A¸q  1˜v¨°°Q±Ð'7Ñ7ÓNÔOÜ‡J�Jˆq˜¨W°c¨NÀtÕLØ×,Ñ,Ó.ÖO�A´*¸QÄÇÁÇÁÕ2NŠaÐO€FÐOÜ	ˆ&„MÜ�A—G‘G“I˜vÓ&ò $‰ˆˆ1Ø�z‰z‹|œs 1 Q¡4¨!¨A©$¡;Ó/Ò/Ð/Ð/Ø�{‰{‹} Ó#Ð#Ð#ð$ô ‡I�I…Kùó OùâOs   ÁEÂ%)EÃEc                  ó|  — t        j                  «       } | j                  g d¢«       | j                  g d¢«       t        j                  | | j                  d¬«      D �ci c]  }|ddt        |d   «      z  › �“Œ c}d«       t        j                  «       j                  d	«      }t        j                  | |¬
«       |j                  «       D �cg c]@  }t        |t        j                  j                  «      r|j!                  «       j"                  ‘ŒB }}|g d¢k(  sJ ‚t        j%                  «        y c c}w c c}w )N)ÚAÚBÚCÚD))rå   ræ   Ú0)rå   ræ   Ú1)ræ   rç   ú-1)ræ   rç   rê   )rç   rè   rë   )rç   rè   ré   T)Úkeysz	arc3,rad=çš™™™™™É?rZ   Ú	curvaturer<   r‘   )rw   rí   çš™™™™™É¿rí   rï   rw   )r>   Ú
MultiGraphÚadd_nodes_fromÚadd_edges_fromrd   re   ÚintrA   rB   rC   rD   rH   rf   rE   r‡   rˆ   Úget_connectionstyleÚradrJ   )rK   r£   r=   rŠ   Úradss        rL   Ú(test_display_multigraph_non_integer_keysr÷   y  s  € Ü
�‰‹€AØ×ÑÒ)Ô*Ø×Ñò	
ô	ô ×ÑØ	°a·g±gÀ4°gÓ6HÖI°ˆA�˜3¤ Q q¡T£™?Ð+Ð,Ñ,ÒIÈ;ôô �Z‰Z‹\×%Ñ% cÓ*€FÜ‡J�Jˆq˜Õ ð ×$Ñ$Ó&öàÜ�aœŸ™×4Ñ4Ô5ð 	
×ÑÓ×#Ó#ð€Dð ð
 Ò3Ò3Ð3Ð3Ü‡I�I…Kùò Jùòs   ÁD4
ÃAD9c                  óò   — t        j                  «       } t        j                  t         j                  «      5  t        j
                  | d¬«       t        j                  «        d d d «       y # 1 sw Y   y xY w)NÚbad_arg)rù   )r>   rc   ÚpytestÚraisesÚNetworkXErrorrD   rA   rJ   r®   s    rL   Útest_display_raises_for_bad_argrý   ”  sN   € Ü
×ÑÓ€AÜ	�‰”r×'Ñ'Ó	(ñ Ü
�
‰
�1˜iÕ(Ü�	‰	Œ÷÷ ñ ús   ¸,A-Á-A6c            
      ó  — t        j                  dt         j                  ¬«      } t        j                  | | j	                  «       D ��ci c]  \  }}||f||z   dz   dz  “Œ c}}d«       t
        j                  «       }t        j                  | |¬«       g d¢|j                  «       D �cg c]6  }t        |t        j                  j                  «      r|j                  «       ‘Œ8 c}k(  sJ ‚t
        j                  «        y c c}}w c c}w )Nr   r   rZ   Ú	arrowsizer‘   )é	   é   é1   )r>   r?   ÚDiGraphrd   re   rA   ÚaxesrD   rH   rf   rE   r‡   rˆ   Úget_mutation_scalerJ   )rK   rl   rm   r’   rŠ   s        rL   Útest_display_arrow_sizer  ›  sÒ   € Ü
�‰�a¤b§j¡jÔ1€AÜ×ÑØ	°·±³×;©¨¨AˆQ�ˆF�Q˜‘U˜Q‘Y 1Ñ$Ñ$Ó;¸[ôô 
�‰‹€BÜ‡J�Jˆq˜ÕÚà—‘Ó"öàÜ�aœŸ™×4Ñ4Ô5ð 	
×ÑÕòò ð ð ô
 ‡I�I…Kùó <ùòs   Á	DÂ*;Dc            	      óx  — t        j                  d«      } t        j                  | dddddœd«       t        j                  | | j                  «       D �ci c]  }||dk  “Œ
 c}d	«       t	        j
                  t         j                  «      5  t        j                  | «       d
d
d
«       y
c c}w # 1 sw Y   y
xY w)zP
    This test ensures that a error is raised for incomplete position data.
    rÅ   r—   r˜   r™   )r   r   )r   rO   rZ   r   r*   r   ÚvisibleN)r>   r?   r@   rT   rú   rû   rü   rD   )rK   rW   s     rL   Ú%test_display_mismatched_edge_positionr	  ª  s–   € ô 	�‰�aÓ€Aä×Ñ˜1 &¨V¸À6ÑJÈEÔRä×Ñ˜1°·±³Ö;¨A˜q ! a¡%™xÒ;¸YÔGô 
�‰”r×'Ñ'Ó	(ñ Ü
�
‰
�1Œ÷ð ùò <÷ð ús   ÁB+
ÂB0Â0B9)r   rÃ   c                 ót  — t         j                  «       j                  d«      }t        j                  dg«      }t        j
                  |dddœd«       t        j                  ||| ¬«       |j                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ c}d   }|j                  «       j                  «       ddd	…df   }t         j                  «       j                  d«      }t        j                  ||d
d
| ¬«       |j                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ c}d   }|j                  «       j                  «       ddd	…df   }|d   |d   kD  sJ ‚|d   |d   k  sJ ‚t         j                  «        yc c}w c c}w )a	  
    Test that there is a wider gap between the node and the start of an
    incident edge when min_source_margin is specified.

    This test checks that the use os min_{source/target}_margin edge
    attributes result is shorter (more padding) between the edges and
    source and target nodes.


    As a crude visual example, let 's' and 't' represent source and target
    nodes, respectively:

       Default:
       s-----------------------------t

       With margins:
       s   -----------------------   t

    r<   r�   r—   r˜   r*   )r=   r   r   NrZ   éd   )r=   r3   r4   r   rO   )rA   rB   rC   r>   r  r@   rD   rH   rf   rE   r‡   rˆ   Úget_extentsÚcornersrJ   )r   r’   rK   rŠ   Údefault_arrowÚdefault_extentÚpadded_arrowÚpadded_extents           rL   Útest_display_edge_marginsr  »  sƒ  € ô* 
�‰‹×	!Ñ	! #Ó	&€BÜ
�
‰
�F�8Ó€AÜ×Ñ˜1 &¨VÑ4°eÔ<ä‡J�Jˆq˜¨
Õ3à—?‘?Ó$öØ¬
°1´c·k±k×6QÑ6QÕ(RŠòàñ	€Mð #×.Ñ.Ó0×8Ñ8Ó:¹3¸Q¸3À¸6ÑB€Nä	�‰‹×	!Ñ	! #Ó	&€BÜ‡J�JØ	ØØØØõð —?‘?Ó$öØ¬
°1´c·k±k×6QÑ6QÕ(RŠòàñ	€Lð !×,Ñ,Ó.×6Ñ6Ó8¹¸1¸¸a¸Ñ@€Mð ˜Ñ˜n¨QÑ/Ò/Ð/Ð/à˜Ñ˜n¨QÑ/Ò/Ð/Ð/Ü‡I�I…Kùò-ùòs   Á>)F0Â(F0Ä')F5ÅF5Úticksc           	      ó˜  — t        j                  d«      }t        j                  ||j                  «       D �ci c]  }|||f“Œ	 c}d«       t        j                  «       }t        j                  || ¬«       |j                  |j                  fD ]   }t        |j                  «       «      | k7  rŒ J ‚ t        j                  «        y c c}w )NrS   r*   )Ú
hide_ticks)r>   r?   r@   rT   rA   r  rD   ÚxaxisÚyaxisÚboolÚget_ticklabelsrJ   )r  rK   rW   r’   Úaxiss        rL   Útest_display_hide_ticksr  î  sœ   € ä
�‰�aÓ€AÜ×Ñ˜1°!·'±'³)Ö<¨Q˜q 1 a &™yÒ<¸eÔDÜ	�‰‹€BÜ‡J�Jˆq˜UÕ#Ø—‘˜2Ÿ8™8Ð$ò 4ˆÜ�D×'Ñ'Ó)Ó*¨eÓ3Ð3Ð3ð4ô ‡I�I…Kùò =s   ¸C
c                  ó–  — t         j                  «       } t        j                  «       }|j	                  d«       |j                  dd«       t        j                  |ddid«       t        j                  || ¬«       | j                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ c}d   }|j                  «       }t        |j                  «       t        |j                   «       |j                  dkD  r|j                   dkD  sJ ‚t         j#                  | «       t         j%                  «        y c c}w )Nr   r—   r*   r‘   )rA   r  r>   r  Úadd_nodeÚadd_edger@   rD   rH   rf   rE   r‡   rˆ   r  rá   rÆ   ÚheightÚdelaxesrJ   )r’   rK   rŠ   Úarrowr   s        rL   Útest_display_self_loopr"  ú  sè   € Ü	�‰‹€BÜ
�
‰
‹€AØ‡J�Jˆq„MØ‡J�Jˆq�!ÔÜ×Ñ˜1˜q &˜k¨5Ô1Ü‡J�Jˆq˜Õà—?‘?Ó$öØ¬
°1´c·k±k×6QÑ6QÕ(RŠòàñ	€Eð ×ÑÓ€DÜ	ˆ$�*‰*ÔÜ	ˆ$�+‰+ÔØ�:‰:˜Š>˜dŸk™k¨AšoÐ-Ð-ä‡K�K�„OÜ‡I�I…Kùòs   Â)EÂ8Ec                  óŒ   — t        j                  «       } t        j                  | «       t        j                  | d«      i k(  sJ ‚y)zË
    If the pos attribute isn't provided or is a function, display computes the layout
    and adds it to the graph. We need to ensure that this new attribute is removed from
    the returned graph.
    z!display's position attribute nameN)r>   rc   rD   Úget_node_attributesr®   s    rL   Útest_display_remove_pos_attrr%    s9   € ô 	×ÑÓ€AÜ‡J�Jˆq„MÜ×!Ñ! !Ð%HÓIÈRÒOÐOÑOrN   c               #   ó˜   K  — t         j                  «       \  } }| |f–— t         j                  |«       t         j                  «        y ­wr‚   )rA   Úsubplotsr   rJ   )Úfigr’   s     rL   r'  r'    s2   è ø€ ä�l‰l‹n�G€CˆØ
ˆrˆ'‚MÜ‡K�K�„OÜ‡I�I…Kùs   ‚AA
Úfunctionc                 ó°   — | t         j                  k(  rt        j                  dd¬«       |\  }}ddddœ} | t        fi |¤Ž |j                  |dz  «       y )	NÚscipyz draw_kamada_kawai requires scipy)Úreasonrr   r  rS   )r
   r   rÆ   útest.ps)r>   Údraw_kamada_kawairú   ÚimportorskipÚbarbellÚsavefig)r)  r'  Útmp_pathr(  Ú_Úoptionss         rL   Ú	test_drawr5     sV   € ð ”2×'Ñ'Ò'Ü×Ñ˜GÐ,NÕOØ�F€CˆØ$°3ÀÑC€GÙŒWÑ ˜Ò Ø‡K�K�˜9Ñ$Õ%rN   c                 óæ   — | \  }}t        t        d«      «      t        t        dd«      «      t        t        dd«      «      g}t        j                  t        |¬«       |j                  |dz  «       y )Nr   rb   é   )Únlistr-  )rÉ   Úranger>   Ú
draw_shellr0  r1  )r'  r2  r(  r3  r8  s        rL   Útest_draw_shell_nlistr;  6  sT   € Ø�F€CˆÜ”%˜“(‹^œT¤%¨¨2£,Ó/´´e¸BÀ³mÓ1DÐE€EÜ‡M�M”' Õ'Ø‡K�K�˜9Ñ$Õ%rN   c                 óŒ   — | \  }}t        j                  dd«      }t        j                  |«       |j                  |dz  «       y )NrZ   rÅ   r-  )r>   Úcomplete_bipartite_graphÚdraw_bipartiter1  )r'  r2  r(  r3  rK   s        rL   Útest_draw_bipartiter?  =  s<   € Ø�F€CˆÜ
×#Ñ# A qÓ)€AÜ×Ñ�aÔØ‡K�K�˜9Ñ$Õ%rN   c                  óª   — t        t        j                  «       «      } t        j                  t        | dt
        j                  j                  d¬«       y )Nr   T)r#   rÆ   Ú	edge_cmapÚwith_labels)r9  r0  Únumber_of_edgesr>   Údraw_springrA   r¹   ÚBlues)rF   s    rL   Útest_edge_colormaprF  D  s5   € Ü”7×*Ñ*Ó,Ó-€FÜ‡N�NÜ˜F¨!´s·v±v·|±|ÐQUörN   c                 óö   — | \  }}d}t        j                  |g«      }|D �ci c]  }|||f“Œ	 }}t        j                  ||¬«       t        j                  |||di¬«       |j	                  |dz  «       y c c}w )Nr�   )r*   Úedge©Úedge_labelsr-  )r>   r  ÚdrawÚdraw_networkx_edge_labelsr1  )r'  r2  r(  r3  rH  rK   rW   r*   s           rL   Útest_draw_networkx_edge_labelsrM  L  su   € Ø�F€CˆØ€DÜ
�
‰
�D�6Ó€AØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 Ü‡G�GˆA�3ÕÜ× Ñ   C°d¸F°^ÕDØ‡K�K�˜9Ñ$Õ%ùò !s   ¢A6c                  óR   — t        j                  t        j                  «       «       y r‚   )r>   rD  r0  Úto_directed© rN   rL   Útest_arrowsrQ  V  s   € Ü‡N�N”7×&Ñ&Ó(Õ)rN   rq   rs   rt   r9   ru   rv   rx   ry   rz   r:   )ú#0000ffr{   rR  r{   Úedgelistr�   c                 óæ   — t        j                  d«      }t        j                  |t        j                  |«      || ¬«      }t        j
                  j                  |j                  «       |«      sJ ‚y)z`Tests ways of specifying all edges have a single color for edges
    drawn with a LineCollectionrS   ©r*   rS  r#   N)r>   r?   Údraw_networkx_edgesÚrandom_layoutrE   rF   rG   râ   )r#   r7   rS  rK   Údrawn_edgess        rL   Ú!test_single_edge_color_undirectedrY  [  s[   € ô& 	�‰�aÓ€AÜ×(Ñ(Ø	Œr×Ñ Ó"¨XÀ*ô€Kô �:‰:× Ñ  ×!6Ñ!6Ó!8¸(ÔCÐCÑCrN   c                 ó  — t        j                  dt         j                  ¬«      }t        j                  |t        j                  |«      || ¬«      }|D ]2  }t
        j                  j                  |j                  «       |«      rŒ2J ‚ y)zaTests ways of specifying all edges have a single color for edges drawn
    with FancyArrowPatchesrS   r   rU  N)	r>   r?   r  rV  rW  rE   rF   rG   Úget_edgecolor)r#   r7   rS  rK   rX  Úfaps         rL   Útest_single_edge_color_directedr]  u  sr   € ô& 	�‰�a¤b§j¡jÔ1€AÜ×(Ñ(Ø	Œr×Ñ Ó"¨XÀ*ô€Kð ò DˆÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸(ÕCÐCÐCñDrN   c                  ó  — t        j                  dt         j                  ¬«      } t        t	        | «      «      D �ci c]  }|||f“Œ	 }}dD ]£  }t        j
                  | ||¬«      }|D ]2  }t        j                  j                  |j                  «       |«      rŒ2J ‚ t        j
                  | |ddg|¬«      }|D ]2  }t        j                  j                  |j                  «       |«      rŒ2J ‚ Œ¥ t        j
                  | |g d¢d	¬«      }|D ]2  }t        j                  j                  |j                  «       d
«      rŒ2J ‚ t        j
                  | |g d¢d¬«      }|D ]2  }t        j                  j                  |j                  «       d
«      rŒ2J ‚ t        j
                  | |g d¢d¬«      }t        j                  j                  |d   j                  «       |d   j                  «       «      sJ ‚|D ]2  }t        j                  j                  |j                  «       d
«      sŒ2J ‚ t        j
                  | |g d¢d	¬«      }t        j                  j                  |d   j                  «       |d   j                  «       «      sJ ‚t        j                  j                  |d   j                  «       |d   j                  «       «      sJ ‚|D ]2  }t        j                  j                  |j                  «       d
«      sŒ2J ‚ yc c}w )z†If edge_color is a sequence with the same length as edgelist, then each
    value in edge_color is mapped onto each edge via colormap.r   r   )r�   ©r   r   rO   rO   ©r#   r�   r�   )rS  r#   ©r�   r�   ©rZ   rS   r_  r{   )r�   r�   rb  )rS   r   r�   r   rO   rZ   rS   N)
r>   r?   r  r9  ri   rV  rE   rF   rG   r[  )rK   rW   r*   r'   rX  r\  s         rL   Ú$test_edge_color_tuple_interpretationrc  �  sñ  € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ð (ò 
Bˆä×,Ñ,¨Q°ÀÔCˆØò 	BˆCÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸bÕAÐAÐAð	Bô ×,Ñ,Øˆs˜f fÐ-¸"ô
ˆð ò 	BˆCÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸bÕAÐAÐAñ	Bð
Bô ×(Ñ(Ø	ˆ3Ò1¸lô€Kð ò BˆÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸&ÕAÐAÐAðBô ×(Ñ(Ø	ˆ3Ò9Àiô€Kð ò BˆÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸&ÕAÐAÐAðBô ×(Ñ(Ø	ˆ3Ò1¸iô€Kô �:‰:× Ñ Ø�A‰×$Ñ$Ó&¨°A©×(DÑ(DÓ(Fôð ð ð ò FˆÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸fÕEÐEÐEðFô ×(Ñ(Ø	ˆ3Ò9Àlô€Kô �:‰:× Ñ Ø�A‰×$Ñ$Ó&¨°A©×(DÑ(DÓ(Fôð ð ô �:‰:× Ñ Ø�A‰×$Ñ$Ó&¨°A©×(DÑ(DÓ(Fôð ð ð ò FˆÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸fÕEÐEÐEñFùòc -s   ¼Lc                  ó@  — t         j                  «       } t        j                  t         «      }d}t        j                  | ||¬«      }t        |t        j                  |«      «      D ]5  \  }}t        j                  j                  |j                  «       |«      rŒ5J ‚ y)zZTest that the edge colors are cycled when there are fewer specified
    colors than edges.©rt   ÚgÚbr`  N)r0  rO  r>   rW  rV  rœ   Ú	itertoolsÚcyclerE   rF   rG   r[  ©rK   r*   Ú
edgecolorsrX  r\  r7   s         rL   Ú.test_fewer_edge_colors_than_num_edges_directedrl  É  sƒ   € ô 	×ÑÓ€AÜ
×
Ñ
œ7Ó
#€CØ €JÜ×(Ñ(¨¨C¸JÔG€KÜ˜[¬)¯/©/¸*Ó*EÓFò D‰ˆˆXÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸(ÕCÐCÐCñDrN   c                  óB  — t        j                  dt         j                  ¬«      } t        j                  t        «      }d}t        j
                  | ||¬«      }t        ||dd «      D ]5  \  }}t        j                  j                  |j                  «       |«      rŒ5J ‚ y)z\Test that extra edge colors are ignored when there are more specified
    colors than edges.r   r   )rt   rf  rg  r„   r`  Nr–   )r>   r?   r  rW  r0  rV  rœ   rE   rF   rG   r[  rj  s         rL   Ú-test_more_edge_colors_than_num_edges_directedrn  Ô  s†   € ô 	�‰�a¤b§j¡jÔ1€AÜ
×
Ñ
œ7Ó
#€CØ%€JÜ×(Ñ(¨¨C¸JÔG€KÜ˜[¨*°S°b¨/Ó:ò D‰ˆˆXÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸(ÕCÐCÐCñDrN   c                  óH  — t        j                  t        t        j                  t        «      ddgdd¬«      } | j	                  «       j                  «       }t        | j                  «       «      dk(  sJ ‚t        j                  j                  |d d d«      sJ ‚|d   dk(  sJ ‚y ©Nr�   r�   Úpurplerí   )r*   rS  r#   r   rZ   r–   )r>   rV  r0  rW  râ   Úsqueezeri   rj   rE   rF   rG   )Úedge_collectionr'   s     rL   Ú3test_edge_color_string_with_global_alpha_undirectedrt  ß  s–   € Ü×,Ñ,ÜÜ×ÑœWÓ%Ø˜&Ð!ØØô€Oð 
×	"Ñ	"Ó	$×	,Ñ	,Ó	.€BÜˆ×(Ñ(Ó*Ó+¨qÒ0Ð0Ð0Ü�:‰:× Ñ   C R ¨(Ô3Ð3Ð3Øˆb‰6�SŠ=Ð‰=rN   c                  ó:  — t        j                  t        j                  «       t        j                  t        «      ddgdd¬«      } t        | «      dk(  sJ ‚| D ]A  }|j                  «       }t        j                  j                  |d d d«      sJ ‚|d   dk(  rŒAJ ‚ y rp  )
r>   rV  r0  rO  rW  ri   r[  rE   rF   rG   )rX  r\  r'   s      rL   Ú1test_edge_color_string_with_global_alpha_directedrv  í  sœ   € Ü×(Ñ(Ü×ÑÓÜ×ÑœWÓ%Ø˜&Ð!ØØô€Kô ˆ{Ó˜qÒ Ð Ð Øò ˆØ×ÑÓ ˆÜ�z‰z×$Ñ$ R¨¨ W¨hÔ7Ð7Ð7Ø�"‰v˜‹}Ðˆ}ñrN   c                 ó  — t        j                  d| ¬«      }t        t        |«      «      D �ci c]  }|||f“Œ	 }}t        j                  ||«      }t        |t        «      r|d   }|j                  «       dk(  sJ ‚yc c}w )z^Test the default linewidth for edges drawn either via LineCollection or
    FancyArrowPatches.rZ   r   r   rO   N)r>   r?   r9  ri   rV  rf   rÉ   rÈ   )r}   rK   rW   r*   rX  s        rL   Útest_edge_width_default_valuerx  ü  sx   € ô 	�‰�a jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,Ü×(Ñ(¨¨CÓ0€KÜ�+œtÔ$Ø! !‘nˆØ×$Ñ$Ó&¨!Ò+Ð+Ñ+ùò	 -s   ®A=)Ú	edgewidthr7   ©rS   rS   rS   c                 ó  — t        j                  d«      }t        t        |«      «      D �ci c]  }|||f“Œ	 }}t        j                  ||| ¬«      }t        |j                  «       «      dk(  sJ ‚|j                  «       |k(  sJ ‚y c c}w )Nr   ©rÆ   rS   )r>   r?   r9  ri   rV  rj   rÈ   )ry  r7   rK   rW   r*   rX  s         rL   Ú'test_edge_width_single_value_undirectedr}    s�   € ô 	�‰�aÓ€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,Ü×(Ñ(¨¨C°yÔA€KÜˆ{×$Ñ$Ó&Ó'¨1Ò,Ð,Ð,Ø×$Ñ$Ó&¨(Ò2Ð2Ñ2ùò -s   ¬Bc                 ó(  — t        j                  dt         j                  ¬«      }t        t	        |«      «      D �ci c]  }|||f“Œ	 }}t        j
                  ||| ¬«      }t	        |«      dk(  sJ ‚|D ]  }|j                  «       |k(  rŒJ ‚ y c c}w )Nr   r   r|  rS   )r>   r?   r  r9  ri   rV  rÈ   )ry  r7   rK   rW   r*   rX  r\  s          rL   Ú%test_edge_width_single_value_directedr    s�   € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,Ü×(Ñ(¨¨C°yÔA€KÜˆ{Ó˜qÒ Ð Ð Øò /ˆØ× Ñ Ó" hÓ.Ð.Ð.ñ/ùò -ó   ¼Bra  r�   c                 ó  — t         j                  «       }t        j                  |«      }d}t        j                  ||| |¬«      }t        |t        j                  |«      «      D ]  \  }}|j                  «       |k(  rŒJ ‚ y )N)r)   g       @g      (@)rS  rÆ   )	r0  rO  r>   rW  rV  rœ   rh  ri  rÈ   )rS  rK   r*   rË   rX  r\  Úexpected_widths          rL   Útest_edge_width_sequencerƒ  '  sx   € ô 	×ÑÓ€AÜ
×
Ñ
˜1Ó
€CØ€FÜ×(Ñ(¨¨C¸(È&ÔQ€KÜ" ;´	·±ÀÓ0GÓHò 5Ñˆˆ^Ø× Ñ Ó" nÓ4Ð4Ð4ñ5rN   c                  ó°  — t        j                  dt         j                  ¬«      } t        j                  | «      }t        j                  | |ddg¬«      }|D �cg c]  }|j                  «       ‘Œ }}t        j                  | |ddgdd¬«      }|D �cg c]  }|j                  «       ‘Œ }}t        j                  j                  ||«      sJ ‚y	c c}w c c}w )
zyTest that edge_vmin and edge_vmax properly set the dynamic range of the
    color map when num edges == len(edge_colors).rS   r   r   r   r`  rí   gš™™™™™é?)r#   Ú	edge_vminÚ	edge_vmaxN)	r>   r?   r  rW  rV  r[  rE   rF   rG   )rK   r*   rX  r£   Úorig_colorsÚscaled_colorss         rL   Ú#test_edge_color_with_edge_vmin_vmaxr‰  8  s¹   € ô 	�‰�a¤b§j¡jÔ1€AÜ
×
Ñ
˜1Ó
€Cä×(Ñ(¨¨C¸QÀ¸HÔE€KØ.9Ö:¨�1—?‘?Õ$Ð:€KÐ:ä×(Ñ(Ø	ˆ3˜C ˜:°Àô€Kð 1<Ö<¨1�Q—_‘_Õ&Ð<€MÐ<Ü�:‰:× Ñ  ¨mÔ<Ð<Ñ<ùò ;ùò
 =s   ÁCÂCc                  ó$  — t        j                  dt         j                  ¬«      } t        t	        | «      «      D �ci c]  }|||f“Œ	 }}t        j
                  | |«      }t	        |«      dk(  sJ ‚|D ]  }|j                  «       dk(  rŒJ ‚ yc c}w )z>Test default linestyle for edges drawn with FancyArrowPatches.r   r   rS   ÚsolidN©r>   r?   r  r9  ri   rV  rÐ   )rK   rW   r*   rX  r\  s        rL   Ú%test_directed_edges_linestyle_defaultr�  H  s‹   € ä
�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ô ×(Ñ(¨¨CÓ0€KÜˆ{Ó˜qÒ Ð Ð Øò .ˆØ× Ñ Ó" gÓ-Ð-Ð-ñ.ùò -s   ¼B)Údashedú--©rO   r˜   c                 ó(  — t        j                  dt         j                  ¬«      }t        t	        |«      «      D �ci c]  }|||f“Œ	 }}t        j
                  ||| ¬«      }t	        |«      dk(  sJ ‚|D ]  }|j                  «       | k(  rŒJ ‚ yc c}w )z¬Tests support for specifying linestyles with a single value to be applied to
    all edges in ``draw_networkx_edges`` for FancyArrowPatch outputs
    (e.g. directed edges).r   r   ©rÎ   rS   NrŒ  )rÎ   rK   rW   r*   rX  r\  s         rL   Ú*test_directed_edges_linestyle_single_valuer“  T  s�   € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ä×(Ñ(¨¨C°uÔ=€KÜˆ{Ó˜qÒ Ð Ð Øò ,ˆØ× Ñ Ó" eÓ+Ð+Ð+ñ,ùò	 -r€  Ú	style_seqrŽ  r�  r�  )r�  r-   rÍ   )r�  r-   rÍ   z-.c                 óh  — t        j                  dt         j                  ¬«      }t        t	        |«      «      D �ci c]  }|||f“Œ	 }}t        j
                  ||| ¬«      }t	        |«      dk(  sJ ‚t        |t        j                  | «      «      D ]  \  }}|j                  «       |k(  rŒJ ‚ yc c}w )zˆTests support for specifying linestyles with sequences in
    ``draw_networkx_edges`` for FancyArrowPatch outputs (e.g. directed edges).r   r   r’  rS   N)
r>   r?   r  r9  ri   rV  rœ   rh  ri  rÐ   )r”  rK   rW   r*   rX  r\  rÎ   s          rL   Ú&test_directed_edges_linestyle_sequencer–  j  s¡   € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ä×(Ñ(¨¨C°yÔA€KÜˆ{Ó˜qÒ Ð Ð Ü˜+¤y§¡°yÓ'AÓBò ,‰
ˆˆUØ× Ñ Ó" eÓ+Ð+Ð+ñ,ùò	 -s   ¼B/c                  ó  — ddl m} m} ddlm} t        j                  t
        j                  ¬«      }t        j                  t
        j                  ¬«      }t        j                  |d¬«      }t        j                  |d¬«      }t        j                  ||«      }t        ||«      sJ ‚t        j                  ||d¬«      }t        |t        «      sJ ‚t        |«      dkD  rt        |d   |«      sJ ‚t        j                  ||d	¬«      }t        || «      sJ ‚t        j                  ||d ¬«      }t        || «      sJ ‚t        j                  ||d ¬«      }t        |t        «      sJ ‚t        |«      dkD  rt        |d   |«      sJ ‚y y )
Nr   )rh   rÂ   )rˆ   r   é*   r«   T©ÚarrowsF)Úmatplotlib.collectionsrh   rÂ   Úmatplotlib.patchesrˆ   r>   Úfrucht_graphÚGraphr  r­   Údraw_networkx_nodesrf   rV  rÉ   ri   )	rh   rÂ   rˆ   rK   ÚdGr*   ÚdposrT   re   s	            rL   Útest_return_typesr¢  ‚  sE  € ßEÝ2ä
�‰¤R§X¡XÔ.€AÜ	�‰¤b§j¡jÔ	1€BÜ
×
Ñ
˜1 2Ô
&€CÜ×Ñ˜B RÔ(€Dä×"Ñ" 1 cÓ*€EÜ�e˜^Ô,Ð,Ð,ä×"Ñ" 2 t°DÔ9€EÜ�eœTÔ"Ð"Ð"Ü
ˆ5ƒz�A‚~Ü˜% ™( OÔ4Ð4Ð4Ü×"Ñ" 2 t°EÔ:€EÜ�e˜^Ô,Ð,Ð,Ü×"Ñ" 1 d°4Ô8€EÜ�e˜^Ô,Ð,Ð,Ü×"Ñ" 2 s°4Ô8€EÜ�eœTÔ"Ð"Ð"Ü
ˆ5ƒz�A‚~Ü˜% ™( OÔ4Ð4Ñ4ð rN   c            
      ó&  — t        j                  «       } t        j                  | d¬«      }t        j                  | |g d¢ddd¬«       t        j                  | |g d¢d	dg d
¢¬«       t        j                  | |dd¬«       t        j                  | |g d¢ddd¬«       t        j                  | |g d¢ddd	¬«       t        j                  | |g d¢ddddd	¬«       i }d|d<   d|d<   d|d<   d|d<   d|d<   d|d<   d |d!<   d"|d#<   t        d«      D �ci c]  }||dz  dk(  rd$nd“Œ }}t        j                  | ||d%¬&«       t        j                  | ||d%|¬'«       t        j                  | |d d(¬)«       t        j                  | |d*d+i¬,«       y c c}w )-Nr˜  r«   )r   rO   rZ   rS   rt   iô  ç      è?)Únodelistr
   r   r   )r   rÅ   r   é   rg  )rQ   r)   r¤  r   r   r)   )rÆ   r   )r�   r�   rb  )rS   r   é   )rS  rÆ   r   r#   )©r   rÅ   )rÅ   r   )r   r¦  )r¦  r   T)rS  rš  Úmin_source_marginÚmin_target_marginrÆ   r#   z$a$r   z$b$rO   z$c$rZ   z$d$rS   z$\alpha$r   z$\beta$rÅ   z$\gamma$r   z$\delta$r¦  Úké   )Ú	font_size)r­  Ú
font_colorF)rJ  r+   r¨  z4-5rI  )r>   Úcubical_graphr­   rŸ  rV  r9  Údraw_networkx_labelsrL  )rK   r*   rÝ   rW   rF   s        rL   Útest_labels_and_colorsr±  œ  s¯  € Ü
×ÑÓ€AÜ
×
Ñ
˜1 2Ô
&€Cä×ÑØ	ˆ3š°#ÀÈDõô ×ÑØ	ØÚØØÚ$õô ×Ñ˜1˜c¨°CÕ8Ü×ÑØ	ØÚ1ØØØõô ×ÑØ	ØÚ1ØØØõô ×ÑØ	ØÚ1ØØØØØõ	ð €FØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IÜ5:¸1³XÖ>°ˆa˜˜A™ š
‘¨Ñ+Ð>€FÐ>Ü×Ñ˜A˜s F°bÕ9Ü×Ñ˜A˜s F°bÀVÕLÜ× Ñ   C°TÀ%ÕHÜ× Ñ   C°f¸e°_ÖEùò	 ?s   ÄFc                 óª   — | \  }}t        j                  t        |¬«       t        j                  t        t        j                  t        «      |¬«       y )N©r’   )r>   rK  r0  rL  Úcircular_layout)r'  r(  r’   s      rL   Ú	test_axesrµ  Ù  s6   € Ø�G€CˆÜ‡G�GŒG˜ÕÜ× Ñ ¤¬"×*<Ñ*<¼WÓ*EÈ"ÖMrN   c                  óV   — t        j                  «       } t        j                  | «       y r‚   )r>   rž  rK  r®   s    rL   Útest_empty_graphr·  ß  s   € Ü
�‰‹
€AÜ‡G�GˆA…JrN   c                  ór  — dd l } t        j                  ddg«      }t        j                  ddg«      }t        j                  |«      }t        t        j                  ||g ¬«      t        j                  j                  «      sJ ‚t        t        j                  ||g ¬«      t        j                  j                  «      sJ ‚t        j                  ||g d¬«      g k(  sJ ‚t        j                  ||g d¬«      g k(  sJ ‚t        j                  ||g d¬«      g k(  sJ ‚t        j                  ||g d¬«      g k(  sJ ‚y )Nr   r�   rb  )r¥  T)rS  rš  F)r›  r>   rž  r  r´  rf   rŸ  rE   rg   rÂ   rV  )r   rK   ÚDGr*   s       rL   Ú#test_draw_empty_nodes_return_valuesrº  ä  s  € ã!ä
�‰�&˜&Ð!Ó"€AÜ	�‰�V˜VÐ$Ó	%€BÜ
×
Ñ
˜QÓ
€CÜÜ
×Ñ˜q #°Ô3´S·_±_×5SÑ5Sôð ð ô Ü
×Ñ˜r 3°Ô4´c·o±o×6TÑ6Tôð ð ô ×!Ñ! ! S°2¸dÔCÀrÒIÐIÐIÜ×!Ñ! ! S°2¸eÔDÈÒJÐJÐJÜ×!Ñ! " c°B¸uÔEÈÒKÐKÐKÜ×!Ñ! " c°B¸tÔDÈÒJÐJÑJrN   c                  ó´   — t        j                  dt         j                  ¬«      } t        j                  | dg¬«       t        j                  | dgg d¢¬«       y )NrS   r   )r   rO   r   ©rS  )rb   rÖ   r   )rS  r   )r>   r?   ÚMultiDiGraphÚdraw_networkxr®   s    rL   Útest_multigraph_edgelist_tuplesr¿  ú  s<   € ä
�‰�a¤b§o¡oÔ6€AÜ×Ñ�Q ) Õ-Ü×Ñ�Q ) ºÖDrN   c                  ó  — t        j                  t        «      } t        j	                  «       }|j                  d«       t        j                  t        | ddg¬«       t        t        j                  «      }t        |«      D �cg c]  }||z  ‘Œ	 }}t        |«      }|j                  d«       t        j                  t        | ||¬«       |j                  d«       |j                  d«       t        j                  t        | |¬«       y c c}w )	Néƒ   çš™™™™™¹?rí   )r   é„   )r
   r   rO   é…   )r>   rW  r0  rA   rB   rC   rŸ  ri   rT   r9  Úappend)r*   r(  Ú	num_nodesÚxr   rF   s         rL   Útest_alpha_iterrÈ    sÁ   € Ü
×
Ñ
œ7Ó
#€CÜ
�*‰*‹,€Cà‡O�O�CÔÜ×Ñœ7 C°°S¨zÕ:ä”G—M‘MÓ"€IÜ$)¨)Ó$4Ö5˜qˆQ�‹]Ð5€EÐ5Ü�9Ó€FØ‡O�O�CÔÜ×Ñœ7 C°FÀ%ÕHà	‡L�L�„OØ‡O�O�CÔÜ×Ñœ7 C¨uÖ5ùò 6s   ÂD	c                 ó  — | \  }}t        j                  d«      }t        j                  |g d¢|¬«       |j                  «       D �cg c])  }t	        |t
        j                  j                  «      sŒ(|‘Œ+ }}t        |«      dk(  sJ ‚y c c}w )Nr   )r   ÚhrÃ   ú^)r   r’   )	r>   r?   rK  rH   rf   rE   rg   rÂ   ri   )r'  r(  r’   rK   rÃ   Úscatterss         rL   Útest_multiple_node_shapesrÍ    sw   € Ø�G€CˆÜ
�‰�aÓ€AÜ‡G�GˆAÒ.°2Õ6à—?‘?Ó$öØ¬
°1´c·o±o×6TÑ6TÕ(UŠð€Hð ô ˆx‹=˜AÒÐÑùòs   Á)BÁ1Bc                 óÜ  — t        j                  «       }| \  }}t        j                  |||j                  «       D �ci c]  }||dz  rdnd“Œ c}|j                  «       D �ci c]  }|t	        |dz  dz   «      “Œ c}¬«       t        |j                  «       |j                  «       D �cg c]D  }t        |t        j                  j                  «      rt        |j                  «       «      dkD  r|‘ŒF c}«      D ]b  \  }}|dz  rdnd	}t        j                  j                  |j                  «       |«      sJ ‚t	        |dz  dz   «      |j!                  «       k(  rŒbJ ‚ y c c}w c c}w c c}w )
NrZ   r«  rt   g""""""@rÅ   )r’   r®  r­  r   rr   r9   )r>   rc   rK  rT   ró   rœ   rH   rf   rE   r×   rØ   ri   rÙ   rF   rG   râ   rÛ   )r'  rK   r(  r’   rW   rÜ   r7   s          rL   Ú#test_individualized_font_attributesrÏ    s8  € Ü
×ÑÓ€AØ�G€CˆÜ‡G�GØ	ØØ67·g±g³iÖ@°�A˜a !še‘s¨Ñ,Ò@Ø67·g±g³iÖ@°�1”c˜!˜w™-¨!Ñ+Ó,Ñ,Ò@õ	ô Ø	�‰‹	ð —_‘_Ó&ö	
àÜ˜!œSŸX™XŸ]™]Ô+´°A·J±J³LÓ0AÀAÒ0Eò ò	
óò 6‰ˆˆ1ð   !še‘7¨ˆä�z‰z×$Ñ$ Q§[¡[£]°HÔ=Ð=Ð=Ü�1˜‘= 1Ñ$Ó%¨¯©«Ó5Ð5Ð5ñ6ùò AùÚ@ùò	
s   ½EÁ"E$Â)A	E)
c                 óL  — t        j                  «       }| \  }}|j                  «       D ��cg c]  \  }}||z   dz  dk(  rdnd‘Œ }}}|j                  «       D ��cg c]  \  }}d|dz  |dz  z   z  dz   ‘Œ }}}t        j                  ||d||¬«       |j	                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ }	}t        |j                  «       |	«      D ]¡  \  }
}|j                  «       d|
d   dz  |
d   dz  z   z  dz   k(  sJ ‚t        |
«      dz  r$t        j                  j                  j                  n#t        j                  j                  j                  }t        |j                  «       |«      rŒ¡J ‚ y c c}}w c c}}w c c}w )	NrZ   r   r`   ú-[rb   T)r’   rš  ra   rÿ   rO   )r>   rc   re   rK  rH   rf   rE   r‡   rˆ   rœ   r  rk   Ú
ArrowStyleÚBracketBÚCurveFilledBÚget_arrowstyle)r'  rK   r(  r’   rl   rm   ÚarrowstylesÚ
arrowsizesrŠ   rš  r£   r¢   r7   s                rL   Ú#test_individualized_edge_attributesrØ  4  s€  € Ü
×ÑÓ€AØ�G€CˆØCDÇ7Á7Ã9×M¹4¸1¸a˜Q ™U a™K¨1Ò,‘5°$Ñ6ÐM€KÑMØ89¿¹»	×B±°°1�"˜˜A™  A¡™Ñ&¨Ó+ÐB€JÑBÜ‡G�GˆA�"˜T¨kÀZÕPà—?‘?Ó$öØ¬
°1´c·k±k×6QÑ6QÕ(RŠð€Fð ô �A—G‘G“I˜vÓ&ò 8‰ˆˆ1Ø×#Ñ#Ó%¨¨q°©t°a©x¸!¸A¹$À¹(Ñ/BÑ)CÀbÑ)HÒHÐHÐHô �1‹v˜Šzô �K‰K×"Ñ"×+Ò+ä—‘×'Ñ'×4Ñ4ð 	ô
 ˜!×*Ñ*Ó,¨hÕ7Ð7Ð7ñ8ùó NùÛBùòs   ­FÁFÂ&)F!ÃF!c                  óš   — t        j                  t        d¬«      5  t        j                  t
        d¬«       d d d «       y # 1 sw Y   y xY w)NzReceived invalid argument©ÚmatchÚbar)Úfoo)rú   rû   Ú
ValueErrorr>   rK  r0  rP  rN   rL   Útest_error_invalid_kwdsrß  G  s4   € Ü	�‰”zÐ)DÔ	Eñ $Ü
�‰”˜UÕ#÷$÷ $ñ $ús   œAÁA
c                  óÈ   — t        j                  g d¢«      } g d¢}t        j                  t        d¬«      5  t        j
                  | |¬«       d d d «       y # 1 sw Y   y xY w)N)r�   ©r   rZ   ©r   rS   ©rO   rS   )rO   rZ   rS   z1arrowsize should have the same length as edgelistrÚ  )rÿ   )r>   r  rú   rû   rÞ  rK  )rK   rÿ   s     rL   Ú+test_draw_networkx_arrowsize_incorrect_sizerä  L  sM   € Ü
�
‰
Ò3Ó4€AÚ€IÜ	�‰ÜÐMô
ñ (ô 	�‰�˜YÕ'÷(÷ (ñ (ús   ·AÁA!rÿ   é   )rb   rÖ   rå  c                 óZ  — t        j                  g d¢«      }ddddœ}t        j                  ||| ¬«      }t        | t        «      rt        j                  | «      n| } t        || «      D ]@  \  }}t        |t        j                  j                  «      sJ ‚|j                  «       |k(  rŒ@J ‚ y )N©r�   rá  r�   r—   r�   ©rO   r   rÁ   )r*   rÿ   )r>   r  rV  rf   ró   rh  Úrepeatrœ   rE   r‡   rˆ   r  )rÿ   rK   r*   re   r\  r7   s         rL   Útest_draw_edges_arrowsizerê  U  s—   € ä
�
‰
Ò+Ó,€AØ˜ FÑ
+€CÜ×"Ñ" 1¨#¸ÔC€Eä/9¸)ÄSÔ/I”	× Ñ  Ô+Èy€Iä˜U IÓ.ò 4‰ˆˆXÜ˜#œsŸ{™{×:Ñ:Ô;Ð;Ð;Ø×%Ñ%Ó'¨8Ó3Ð3Ð3ñ4rN   ra   r`   ©r`   rÑ  z<|-|>c                 óF  — t        j                  g d¢«      }ddddœ}t        j                  ||| ¬«      }t        | t        «      rt        j                  | «      n| } t        j                  j                  j                  t        j                  j                  j                  t        j                  j                  j                  dœ}t        || «      D ]J  \  }}t        |t        j                  j                  «      sJ ‚t        |j                  «       ||   «      rŒJJ ‚ y )Nrç  r—   r�   rè  rÁ   )r*   ra   rë  )r>   r  rV  rf   rÚ   rh  ré  rE   r‡   rÒ  rÔ  rÓ  ÚCurveFilledABrœ   rˆ   rÕ  )ra   rK   r*   re   Úarrow_objectsr\  r7   s          rL   Útest_draw_edges_arrowstylerï  b  sé   € ä
�
‰
Ò+Ó,€AØ˜ FÑ
+€CÜ×"Ñ" 1¨#¸*ÔE€Eô )3°:¼sÔ(CŒ	×Ñ˜Ô$Èð ô
 �{‰{×%Ñ%×2Ñ2Ü�k‰k×$Ñ$×-Ñ-Ü—‘×'Ñ'×5Ñ5ñ€Mô ˜U JÓ/ò I‰ˆˆXÜ˜#œsŸ{™{×:Ñ:Ô;Ð;Ð;Ü˜#×,Ñ,Ó.°¸hÑ0GÕHÐHÐHñIrN   c                  ód   — t        j                  t        t        j	                  ddg«      ¬«       y )Nrá  râ  r¼  )r>   r¾  r0  r[   ÚarrayrP  rN   rL   Útest_np_edgelistrò  w  s    € ä×Ñ”W¤r§x¡x°¸Ð0@Ó'AÖBrN   c                  óØ   — t        j                  d«      } dddœ}t        j                  t         j                  d¬«      5  t        j
                  | |«       d d d «       y # 1 sw Y   y xY w)NrS   r—   r˜   r�   zhas no positionrÚ  )r>   r?   rú   rû   rü   rŸ  )rK   r*   s     rL   Ú*test_draw_nodes_missing_node_from_positionrô  |  sT   € Ü
�‰�aÓ€AØ˜Ñ
 €CÜ	�‰”r×'Ñ'Ð/@Ô	Añ 'Ü
×Ñ˜q #Ô&÷'÷ 'ñ 'ús   Á A Á A)c                 óÞ   — | \  }}t        j                  d«      }|D �ci c]  }|||f“Œ	 }}g d¢}t        j                  ||d||¬«      }t        |j	                  «       «      dkD  sJ ‚yc c}w )zÏEnsure draw_networkx_nodes works when node_shape is a Python list.

    This covers the case where node_shape is a sequence (list) and node_color
    is a single scalar color, which should be supported.
    rÅ   )r   rË  r   rË  r   r9   )r
   r   r’   r   N)r>   Úempty_graphrŸ  ri   r\   )r'  r(  r’   rK   Úir*   ÚshapesrT   s           rL   Ú:test_draw_networkx_nodes_node_shape_list_with_scalar_colorrù  ƒ  s}   € ð �G€Cˆä
�‰�qÓ€AØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 â&€Fä×"Ñ"Ø	ØØØØô€Eô ˆu× Ñ Ó"Ó# aÒ'Ð'Ñ'ùò !s   ŸA*c                 ó„  — |\  }}t        j                  dg«      }dddœ}t        j                  |||| ¬«      d   }|j                  «       j	                  «       ddd…df   }t        j                  |||| dd¬	«      d   }|j                  «       j	                  «       ddd…df   }	|	d   |d   kD  sJ ‚|	d
   |d
   k  sJ ‚y)áõ  Test that there is a wider gap between the node and the start of an
    incident edge when min_source_margin is specified.

    This test checks that the use of min_{source/target}_margin kwargs result
    in shorter (more padding) between the edges and source and target nodes.
    As a crude visual example, let 's' and 't' represent source and target
    nodes, respectively:

       Default:
       s-----------------------------t

       With margins:
       s   -----------------------   t

    r�   r—   rè  ©r’   r   r   NrZ   r  ©r’   r   r©  rª  rO   )r>   r  rV  r  r  )
r   r'  r(  r’   rK   r*   Údefault_patchr  Úpadded_patchr  s
             rL   Ú)test_draw_edges_min_source_target_marginsr      sï   € ð& �G€CˆÜ
�
‰
�F�8Ó€AØ˜Ñ
 €Cô ×*Ñ*¨1¨c°bÀZÔPÐQRÑS€MØ"×.Ñ.Ó0×8Ñ8Ó:¹3¸Q¸3À¸6ÑB€Nô ×)Ñ)Ø	ØØØØØôð ñ	€Lð !×,Ñ,Ó.×6Ñ6Ó8¹¸1¸¸a¸Ñ@€Mð ˜Ñ˜n¨QÑ/Ò/Ð/Ð/à˜Ñ˜n¨QÑ/Ò/Ð/Ñ/rN   c           	      óô  — |\  }}t        j                  ddg«      }ddddœ}t        j                  |||| ¬«      }|D �cg c](  }|j                  «       j	                  «       ddd	…d
f   ‘Œ* }}t        j                  |||| ddgddg¬«      }	|	D �
cg c](  }
|
j                  «       j	                  «       ddd	…d
f   ‘Œ* }}
t        ||«      D ]  \  }}
|
d
   |d
   kD  sJ ‚|
d   |d   k  rŒJ ‚ yc c}w c c}
w )rû  r�   r�   r—   rè  )rZ   r   rÁ   rü  NrZ   r   éb   éf   rý  rO   )r>   r  rV  r  r  rœ   )r   r'  r(  r’   rK   r*   rþ  Údr  rÿ  r    r  s               rL   Ú4test_draw_edges_min_source_target_margins_individualr  Ï  s"  € ð& �G€CˆÜ
�
‰
�F˜FÐ#Ó$€AØ˜ FÑ
+€Cô ×*Ñ*¨1¨c°bÀZÔP€MØANÖO¸A�a—m‘m“o×-Ñ-Ó/±°!°°Q°Ó7ÐO€NÐOô ×)Ñ)Ø	ØØØØ˜s˜)Ø˜s˜)ô€Lð AMÖM¸1�Q—]‘]“_×,Ñ,Ó.©s°¨s°A¨vÓ6ÐM€MÐMÜ�N MÓ2ò ‰ˆˆ1ð �‰t�a˜‘dŠ{Ðˆ{à�‰t�a˜‘d‹{Ðˆ{ñùò Pùò Ns   Á -C0Â-C5c                 ó  — | \  }}t        j                  «       }|j                  d«       |j                  dd«       t        j                  |ddi«      d   }|j                  «       }|j                  dkD  r|j                  dkD  sJ ‚y)zDEnsure that selfloop extent is non-zero when there is only one node.r   r—   N)r>   r  r  r  rV  r  rÆ   r  )r'  r(  r’   rK   Úpatchr   s         rL   Ú&test_nonzero_selfloop_with_single_noder  ü  sw   € ð �G€Cˆä
�
‰
‹€AØ‡J�Jˆq„MØ‡J�Jˆq�!Ôä×"Ñ" 1 q¨& kÓ2°1Ñ5€Eà×ÑÓ€DØ�:‰:˜Š>˜dŸk™k¨AšoÐ-Ð-˜orN   c                 óV  — | \  }}t        j                  dt         j                  ¬«      }|j                  dd«       |j                  D �ci c]  }|||f“Œ	 }}t        j
                  ||dg¬«      d   }|j                  «       }|j                  dkD  r|j                  dkD  sJ ‚yc c}w )zfEnsure that selfloop extent is non-zero when only a single edge is
    specified in the edgelist.
    rZ   r   rO   r˜   r¼  r   N)	r>   r?   r  r  rT   rV  r  rÆ   r  )r'  r(  r’   rK   rW   r*   r  r   s           rL   Ú2test_nonzero_selfloop_with_single_edge_in_edgelistr
    s™   € ð
 �G€Cˆä
�‰�a¤b§j¡jÔ1€AØ‡J�Jˆq�!ÔØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&ä×"Ñ" 1 c°V°HÔ=¸aÑ@€Eà×ÑÓ€DØ�:‰:˜Š>˜dŸk™k¨AšoÐ-Ð-˜oùò 's   ÁB&c                  óœ   — g d¢} g d¢}d}t         j                  j                  j                  ||| «      }t	        |dd…df   |k(  «      sJ ‚y)zfTest apply_alpha when there is a mismatch between the number of
    supplied colors and elements.
    rÁ   re  r)   Nr–   )r>   ÚdrawingÚnx_pylabÚapply_alpharU   )r¥  Ú	colorlistr   Úrgba_colorss       rL   Útest_apply_alphar    sM   € ò €HÚ€IØ€EÜ—*‘*×%Ñ%×1Ñ1°)¸UÀHÓM€KÜˆ{š1˜b˜5Ñ! UÑ*Ô+Ð+Ñ+rN   c                  óZ  — ddl } ddl} t        j                  d«      }t        j                  dt        j                  ¬«      }|D �ci c]  }|||f“Œ	 }}||fD ]f  }t        j
                  ||d¬«      }t        |«      t        |j                  «      k(  sJ ‚t        |d   t        j                  j                  «      rŒfJ ‚ ||fD ]@  }t        j
                  ||d¬«      }t        |t        j                  j                  «      rŒ@J ‚ t        j
                  ||«      }t        |t        j                  j                  «      sJ ‚t        j
                  ||«      }t        |«      t        j                  «      k(  sJ ‚t        |d   t        j                  j                  «      sJ ‚yc c}w )a/  
    The `arrows` keyword argument is used as a 3-way switch to select which
    type of object to use for drawing edges:
      - ``arrows=None`` -> default (FancyArrowPatches for directed, else LineCollection)
      - ``arrows=True`` -> FancyArrowPatches
      - ``arrows=False`` -> LineCollection
    r   NrS   r   Tr™  F)r›  rœ  r>   r?   r  rV  ri   re   rf   rE   r‡   rˆ   rg   rh   )r   ÚUGr¹  rW   r*   rK   re   s          rL   Ú*test_draw_edges_toggling_with_arrows_kwargr  '  sl  € ó "Ûä	�‰�qÓ	€BÜ	�‰�q¤r§z¡zÔ	2€BØ Ö
!˜ˆ1ˆq�!ˆf‰9Ð
!€CÐ
!ð �"ˆXò AˆÜ×&Ñ& q¨#°dÔ;ˆÜ�5‹zœS §¡›\Ò)Ð)Ð)Ü˜% ™(¤C§K¡K×$?Ñ$?Õ@Ð@Ð@ðAð �"ˆXò AˆÜ×&Ñ& q¨#°eÔ<ˆÜ˜%¤§¡×!?Ñ!?Õ@Ð@Ð@ðAô
 ×"Ñ" 2 sÓ+€EÜ�eœSŸ_™_×;Ñ;Ô<Ð<Ð<Ü×"Ñ" 2 sÓ+€EÜˆu‹:œ˜QŸW™W›Ò%Ð%Ð%Ü�e˜A‘h¤§¡× ;Ñ ;Ô<Ð<Ñ<ùò% "s   ÁF(Údrawing_funcc                 ó¬   — dd l }t        j                  d«      }|\  }} | ||¬«       t        d„ |j                  D «       «      sJ ‚|j
                  rJ ‚y )Nr   rS   r³  c              3   ód   K  — | ](  }t        |t        j                  j                  «      –— Œ* y ­wr‚   ©rf   rE   rg   rh   ©rƒ   r„   s     rL   r…   z?test_draw_networkx_arrows_default_undirected.<locals>.<genexpr>P  s!   è ø€ ÒUÀŒz˜!œSŸ_™_×;Ñ;×<ÑUùó   ‚.0)r›  r>   r?   Úanyrg   r‡   ©r  r'  r   rK   r(  r’   s         rL   Ú,test_draw_networkx_arrows_default_undirectedr  I  sL   € ã!ä
�‰�aÓ€AØ�G€CˆÙ��rÕÜÑUÀbÇnÁnÔUÔUÐUÐUØ�zŠzÐˆ>ˆzrN   c                 óÌ   — dd l }t        j                  dt        j                  ¬«      }|\  }} | ||¬«       t	        d„ |j
                  D «       «      rJ ‚|j                  sJ ‚y )Nr   rS   r   r³  c              3   ód   K  — | ](  }t        |t        j                  j                  «      –— Œ* y ­wr‚   r  r  s     rL   r…   z=test_draw_networkx_arrows_default_directed.<locals>.<genexpr>[  s&   è ø€ ò Ø:;Œ
�1”c—o‘o×4Ñ4×5ñùr  )r›  r>   r?   r  r  rg   r‡   r  s         rL   Ú*test_draw_networkx_arrows_default_directedr   T  s]   € ã!ä
�‰�a¤b§j¡jÔ1€AØ�G€CˆÙ��rÕÜñ Ø?A¿~¹~ôô ð ð ð �:Š:Ð‰:rN   c                 ó¬   — t        j                  d«      }|j                  dd«       | \  }}t        j                  |ddg|¬«       |j                  rJ ‚y )NrS   r   r�   r�   )rS  r’   )r>   r?   r  rK  r‡   )r'  rK   r(  r’   s       rL   Útest_edgelist_kwarg_not_ignoredr"  a  sJ   € ä
�‰�aÓ€AØ‡J�Jˆq�!ÔØ�G€CˆÜ‡G�GˆA˜ Ð(¨RÕ0Ø�zŠzÐˆ>ˆzrN   )rK   Úexpected_n_edgesrZ   c           	      ó@  — t        g d¢«      D ])  \  }\  }}| j                  ||t        |dz  d«      ¬«       Œ+ | D �ci c]  }|||f“Œ	 }}dddgg d¢fD ]B  }t        j                  | ||¬«       t        j                  | ||¬«      }t        |«      |k(  rŒBJ ‚ yc c}w )	zGDraws edges correctly for 3 types of graphs and checks for valid length©r�   r�   r�   rá  rS   rZ   ©r   úarc3,rad=0.1)r'  r'  úarc3,rad=0.2©ÚconnectionstyleN)Ú	enumerater  r%   r>   rV  ri   )	rK   r#  r÷  rl   rm   rW   r*   Ú
conn_stylerš  s	            rL   Ú2test_draw_networkx_edges_multiedge_connectionstyler-  j  s¹   € ô Ò?Ó@ò 1‰	ˆ‰6ˆAˆqØ	�
‰
�1�a¤ a¨!¡e¨Q£ˆ
Õ0ð1àÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 ð 	Ø	˜Ð(Ú8ðò /ˆ
ô
 	×Ñ˜q #°zÕBÜ×'Ñ'¨¨3À
ÔKˆÜ�6‹{Ð.Ó.Ð.Ð.ñ/ùò !s   ¾Bc           	      ó¤  — t        g d¢«      D ])  \  }\  }}| j                  ||t        |dz  d«      ¬«       Œ+ | D �ci c]  }|||f“Œ	 }}t        j                  | |g d¢¬«      }dddgg d¢fD ]Z  }t        j
                  | ||¬«      }	t        |	«      |k(  sJ ‚|	j                  «       D ]  }
|
j                  j                  d	k(  rŒJ ‚ Œ\ y
c c}w )zXDraws labels correctly for 3 types of graphs and checks for valid length and class namesr%  rS   rZ   r&  )r'  r'  r'  r)  r'  r(  ÚCurvedArrowTextN)
r+  r  r%   r>   rV  rL  ri   ÚvaluesÚ	__class__Ú__name__)rK   r#  r÷  rl   rm   rW   r*   rš  r,  Ú
text_itemsÚtis              rL   Ú8test_draw_networkx_edge_labels_multiedge_connectionstyler5  ~  sð   € ô Ò?Ó@ò 1‰	ˆ‰6ˆAˆqØ	�
‰
�1�a¤ a¨!¡e¨Q£ˆ
Õ0ð1àÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 ä×#Ñ#Ø	ˆ3Ò Pô€Fð 	Ø	˜Ð(Ú8ðò >ˆ
ô
 ×1Ñ1°!°SÈ*ÔUˆ
Ü�:‹Ð"2Ò2Ð2Ð2Ø×#Ñ#Ó%ò 	>ˆBØ—<‘<×(Ñ(Ð,=Ó=Ð=Ð=ñ	>ñ>ùò !s   ¾Cc                  ó,  — t        j                  «       } | j                  ddd¬«       | j                  ddd¬«       t        j                  | d«      }| D �ci c]  }|||f“Œ	 }}t        j                  | ||ddg¬	«      }t        |«      d
k(  sJ ‚y c c}w )Nr   rO   rb   r&  rÖ   r   r'  r(  ©rJ  r*  rZ   )r>   rð   r  Úget_edge_attributesrL  ri   )rK   rJ  rW   r*   r3  s        rL   Ú'test_draw_networkx_edge_label_multiedger9  –  s˜   € Ü
�‰‹€AØ‡J�Jˆq�!˜B€JÔØ‡J�Jˆq�!˜B€JÔÜ×(Ñ(¨¨HÓ5€KØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 Ü×-Ñ-Ø	ØØØ'¨Ð8ô	€Jô ˆz‹?˜aÒÐÑùò !s   ÁBc                  óª   — t        j                  d«      } | j                  D �ci c]  }|||f“Œ	 }}t        j                  | |i ¬«      i k(  sJ ‚yc c}w )zORegression test for draw_networkx_edge_labels with empty dict. See
    gh-5372.rS   rI  N)r>   r?   rT   rL  )rK   rW   r*   s      rL   Ú(test_draw_networkx_edge_label_empty_dictr;  ¥  sS   € ô 	�‰�aÓ€AØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&Ü×'Ñ'¨¨3¸BÔ?À2ÒEÐEÑEùò 's   ¤Ac                 ó:  — | \  }}g d¢}g d¢}t        j                  |«      }|j                  D �ci c]  }|||f“Œ	 }}t        j                  |||||¬«       t	        |j
                  «      dk(  sJ ‚t        j                  |dd «      t        j                  ddg«      z   }t        |j
                  |dd |«      D ]W  \  }	}
}|	j                  «       j                  |«      sJ ‚t        j                  j                  |	j                  «       |
«      rŒWJ ‚ yc c}w )	ztWhen an edgelist is supplied along with a sequence of colors, check that
    the self-loops have the correct colors.)rã  r�   rb  r˜   rz  r™   )ÚpinkÚcyanrr   r9   r{   Úgreen)r’   rS  r#   rS   éýÿÿÿNr   rÂ  )r>   rž  rT   rV  ri   r‡   r[   rñ  rœ   rš   Úcontains_pointrE   rF   rG   r[  )r'  r(  r’   rS  Úedge_colorsrK   rW   r*   Ú	sl_pointsr\  ÚclrÚslps               rL   Ú3test_draw_networkx_edges_undirected_selfloop_colorsrF  ­  s  € ð �G€Cˆâ?€HÚC€Kä
�‰�Ó€AØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&Ü×Ñ˜1˜c b°8ÈÕTô ˆr�z‰z‹?˜aÒÐÐô
 —‘˜ " #˜Ó'¬"¯(©(°A°s°8Ó*<Ñ<€Iô ˜RŸZ™Z¨°R°SÐ)9¸9ÓEò ?‰ˆˆS�#Ø�|‰|‹~×,Ñ,¨SÔ1Ð1Ð1Ü�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸#Õ>Ð>Ð>ñ?ùò 's   ±DÚfap_only_kwargrÖ   r*  r(  r©  rª  c                 ó  — t        j                  d«      }|D �ci c]  }|||f“Œ	 }}|\  }}t        | j                  «       «      d   }t	        j
                  t        d|› d�¬«      5  t        j                  ||fd|i| ¤Ž ddd«       t        j                  «       5  t        j                  d«       t        j                  d	t        ¬
«       t        j                  ||f|ddœ| ¤Ž ddd«       yc c}w # 1 sw Y   ŒvxY w# 1 sw Y   yxY w)zÏUsers should get a warning when they specify a non-default value for
    one of the kwargs that applies only to edges drawn with FancyArrowPatches,
    but FancyArrowPatches aren't being used under the hood.rS   r   z

The z# keyword argument is not applicablerÚ  r’   NÚerrorÚignore)ÚcategoryT)r’   rš  )r>   r?   rÉ   rì   rú   ÚwarnsÚUserWarningrV  ÚwarningsÚcatch_warningsÚsimplefilterÚfilterwarningsÚDeprecationWarning)rG  r'  rK   rW   r*   r(  r’   Ú
kwarg_names           rL   Ú1test_user_warnings_for_unused_edge_drawing_kwargsrT  È  s  € ô 	�‰�aÓ€AØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 Ø�G€Cˆô �n×)Ñ)Ó+Ó,¨QÑ/€JÜ	�‰Ü˜X j \Ð1TÐUô
ñ @ô 	×Ñ˜q #Ñ?¨"Ð?°Ò?÷@ô 
×	 Ñ	 Ó	"ñ Mä×Ñ˜gÔ&Ü×Ñ Ô3EÕFÜ
×Ñ˜q #ÐL¨"°TÑL¸^ÒL÷	Mð Mùò !÷
@ð @ú÷Mð Mús   šC2Á(C7ÂADÃ7D ÄDÚdraw_fnc                 óÂ   — |\  }}t        j                  d«      }t        j                  d¬«      5 } | ||¬«       d d d «       t	        «      dk(  sJ ‚y # 1 sw Y   ŒxY w)NrÅ   T)Úrecordr³  r   )r>   Úcycle_graphrN  rO  ri   )rU  r'  r(  r’   rK   Úws         rL   Ú*test_no_warning_on_default_draw_arrowstylerZ  é  sZ   € ð �G€CˆÜ
�‰�qÓ€AÜ	×	 Ñ	 ¨Ô	-ð °Ù��bÕ÷äˆq‹6�QŠ;Ð‰;÷ð ús   ±AÁAr  Úmethodc                 ó  — t        j                  d«      }|j                  D �ci c]  }|||f“Œ	 }}|\  }} | ||||¬«       |j                  |j                  fD ]   }t        |j                  «       «      |k7  rŒ J ‚ y c c}w )NrS   )r*   r’   r  )r>   r?   rT   r  r  r  r  )	r[  r  r'  rK   rW   r*   r3  r’   r  s	            rL   Útest_hide_ticksr]  ó  s…   € ô 	�‰�aÓ€AØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&Ø�E€A€rÙ
ˆ1�#˜"¨Õ4Ø—‘˜2Ÿ8™8Ð$ò 9ˆÜ�D×'Ñ'Ó)Ó*¨jÓ8Ð8Ð8ñ9ùò 's   ¤A?)ÚangleÚangle3Úarczarc3,rad=0.0zbar,fraction=0.1c                 óÎ  — | \  }}d}t        j                  |g«      }|D �ci c]  }||df“Œ	 }}|j                  d«      d   }t        j                  |||di|¬«      }	|d   d   |d   d   z   dz  }
|d   d   |d   d   z   dz  }|dv r<|	|   j                  s,J |	|   j
                  t        j                  |
|f«      k(  «       ‚y
|d	k(  r|	|   j
                  |k  sJ ‚y
y
c c}w )z†
    Check that FancyArrowPatches with all `connectionstyle`s are supported
    in edge label rendering. See gh-7735 and gh-8106.
    r�   r   ú,rH  r7  rO   rZ   >   r`  r1   rÜ  N)r>   r  ÚsplitrL  rÇ  Úyrú   Úapprox)r'  rÎ   r(  r’   rH  rK   rW   r*   ÚnamerÝ   ÚhmidÚvmids               rL   Ú$test_edge_label_all_connectionstylesri    s  € ð �G€CˆØ€DÜ
�
‰
�D�6Ó€AØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 à�;‰;�sÓ˜AÑ€DÜ×)Ñ)Ø	ˆ3˜T 6˜N¸Eô€Fð �‰F�1‰I˜˜A™˜q™	Ñ! QÑ&€DØ�‰F�1‰I˜˜A™˜q™	Ñ! QÑ&€DØˆÑØ�d‰|�~Š~ÐL˜v d™|Ÿ~™~´·±ÀÀd¸|Ó1LÑLÓL‰~Ø	�ŠØ�d‰|�~‰~ Ò$Ð$Ñ$ð 
ùò !s   ¢C"Ú	label_posgš™™™™™¹¿gš™™™™™ñ?c                 ó  — | \  }}d}t        j                  |g«      }|D �ci c]  }|||f“Œ	 }}t        j                  |||di|d¬«      }||   j                  s,J ||   j                  t        j                  ||f«      k(  «       ‚yc c}w )zH
    Check that label positions can be extrapolated outside [0, 1].
    r�   rH  r^  )rJ  rj  r*  N)r>   r  rL  rÇ  rd  rú   re  )	r'  rj  r(  r’   rH  rK   rW   r*   Úlbls	            rL   Útest_edge_label_label_posrm  !  s”   € ð
 �G€CˆØ€DÜ
�
‰
�D�6Ó€AØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 Ü
×
&Ñ
&Ø	ˆ3˜T 6˜N°iÐQXô€Cð ˆt‰9�;Š;ÐL˜˜D™	Ÿ™¤v§}¡}°iÀÐ5KÓ'LÑLÓL‰;ùò !s   ¢B)uÚ__doc__rh  ÚosrN  rú   Únetworkxr>   r/  rE   r[   ÚuserA   ÚrcParamsÚbarbell_graphr0  ÚdefaultsÚmarkÚparametrizerM   rX   r^   rp   rž  r  r‹   r“   r¨   r²   r¿   rÄ   rÌ   rÔ   rÞ   rã   r÷   rý   r  r	  r  r  r"  r%  Úfixturer'  Údraw_circularr.  Údraw_planarÚdraw_randomÚdraw_spectralrD  r:  Údraw_forceatlas2r5  r;  r?  rF  rM  rQ  rY  r]  rc  rl  rn  rt  rv  rx  r}  r  rƒ  r‰  r�  r“  r–  r¢  r±  rµ  r·  rº  r¿  rÈ  rÍ  rÏ  rØ  rß  rä  rê  rï  rò  rô  rù  r   r  r  r
  r  r  rK  r¾  r  r   r"  rð   r½  r-  r5  r9  r;  rF  rT  rZ  rL  rV  r°  rŸ  r]  ri  rm  rP  rN   rL   ú<module>r}     sf  ðÙ 2ã Û 	Û ã ã à€f×Ñ˜,Ó'€Ø€V×Ñ˜Ó!€Ø ‡�ˆ„Ø€f×ÑÐ-Ó.€Ø#€‡�ˆ]Ñ ð ˆ"×
Ñ
˜1˜aÓ
 €ð,Ø�ð,à�Dð,ð �)ð,ð �ð	,ð
 ØØØØØØ Ø ØØØñð,ð" �#ð#,ð$ �#ð%,ð& ˜ð',ð( ˜ð),ð* �Dð+,ð, �#ð-,ð. �)ð/,ð0 ØØØØØØ$¨OÀ?ÑSØØØØñð1,ðH �#ðI,ðJ �#ðK,ðN �sðO,ðP �aðQ,ðR ØØòW,€ð^ ‡�×ÑØ-à	�t˜X lÑ3Ð4Ø(Ø'ðóñóðð ‡�×ÑØðóñóðòòð" ‡�×ÑØðó
ð ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñó ?ó
ðð* ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñó ?ðð( ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñó ?ðò>ð$ ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñó ?ðð8 ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñó ?ðð( ‡�×ÑØà	�˜Ñ&¨°Ñ(>Ð?Ð@Ø	
ˆQ�ˆFˆØ	�1�b�'Ððóð ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñó ?óðð, ‡�×ÑØà	�˜Ñ&¨°Ñ(>Ð?Ð@Ø	ˆs�CˆjÐØ	�3˜�*Ððóð ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñó ?óðò4òòò6òòð" ‡�×Ñ˜ zÓ2ñ/ó 3ð/ðd ‡�×Ñ˜ 5¨$ -Ó0ñó 1ðòò&Pð ‡�ñó ðð ‡�×ÑØà
×ÑØ
×ÑØ
�‰Ø
�‰Ø
×ÑØ
�‰Ø
�‰Ø
×Ñð	óñ&óð&ò&ò&òò&ò*ð
 ‡�×ÑØàØØ
ˆ�ˆØ#Ø
Ð	˜HÐ%ØØ
ˆ˜Ð ØØ
ˆ�fÐð
óð ‡�×Ñ˜ d¨V¨HÐ%5Ó6ñDó 7óðDð ‡�×ÑØàØØ
ˆ�ˆØ#Ø
Ð	˜HÐ%ØØ
ˆ˜Ð ØØ
ˆ�fÐð
óð ‡�×Ñ˜ d¨V¨HÐ%5Ó6ñ	Dó 7óð	Dò6FòrDòDòòð ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñ,ó ?ð,ð ‡�×ÑØàØ
ˆˆaˆðóñ3óð3ð ‡�×ÑØàØ
ˆˆaˆðóñ/óð/ð ‡�×ÑØâ ØØ	�Ððóñ5óð5ò=ò 	.ð ‡�×ÑØðóñ,óð,ð ‡�×ÑØà	ˆ
Ø	ˆØ	ˆÚØ	ˆsˆÚðó
ñ
,ó
ð
,ò5ò49FòzNòò
Kò,Eò6ò$ò6ò.8ò&$ò
(ð ‡�×Ñ˜ rª<Ð&8Ó9ñ	4ó :ð	4ð ‡�×Ñ˜¨Ò/EÐ'FÓGñIó HðIò(Cò
'ò(ð: ‡�×Ñ˜ zÓ2ñ)0ó 3ð)0ð\ ‡�×Ñ˜ zÓ2ñ)ó 3ð)òX.ò.ò",ò=ðD ‡�×Ñ˜¨"¯'©'°2×3CÑ3CÐ)DÓEñó Fðð ‡�×Ñ˜¨"¯'©'°2×3CÑ3CÐ)DÓEñ	ó Fð	òð ‡�×ÑØØ€b‡j�jƒl�AÐ˜˜Ÿ™›¨!Ð,¨¨r¯©Ó/@À!Ð.DÐEóñ/ó	ð/ð  ‡�×ÑØØ€b‡j�jƒl�AÐ˜˜Ÿ™›¨!Ð,¨¨r¯©Ó/@À!Ð.DÐEóñ>ó	ð>ò( òFò?ð6 ‡�×ÑØà	�sÐØ	�bÐØ	˜NÐ+Ø	˜bÐ!Ø	˜bÐ!ðó	ñMó	ðMð. ‡�×Ñ˜ R§W¡W¨b×.>Ñ.>Ð$?Ó@ñó Aðð ‡�×Ñ˜¨¨t }Ó5Ø‡�×ÑØà
×ÑØ
×$Ñ$Ø
×ÑØ
×ÑØ
×Ñðó	ñ9ó	ó 6ð9ð ‡�×ÑØÒKóñ%óð%ð. ‡�×Ñ˜ t¨S kÓ2ñMó 3ñMrN   