§
    bŠtj)Ö  ã                   ój  — 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 
                    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                             d0dded         fd1d2f¦  «        d3„ ¦   «         Zej                             d4d5¦  «        d6„ ¦   «         Zd7„ Zd8„ Zej                             d9d:¦  «        ej                             d;ej        ej        f¦  «        d<„ ¦   «         ¦   «         Zej                             d;ej        ej        f¦  «        d=„ ¦   «         Zej                             d;ej        ej        f¦  «        d>„ ¦   «         Zd?„ Zej                             d;ej        ej        f¦  «        d@„ ¦   «         Zej                             d;ej        ej        f¦  «        dA„ ¦   «         Zej                             d4ded!         ed!         gfdBdBdBgfdCdBdDgff¦  «        ej                             d;ej        ej        f¦  «        dE„ ¦   «         ¦   «         Zej                             d4ded)         ed)         gfdFdFdFgfdGd*dFgff¦  «        ej                             d;ej        ej        f¦  «        dH„ ¦   «         ¦   «         ZdI„ Z dJ„ Z!dK„ Z"dL„ Z#dM„ Z$dN„ Z%ej                             ddO¦  «        dP„ ¦   «         Z&ej                             dQddg¦  «        dR„ ¦   «         Z'dS„ Z(dT„ Z)ej*        dU„ ¦   «         Z+ej                             dVej,        ej-        ej.        ej/        ej0        ej1        ej2        ej3        g¦  «        dW„ ¦   «         Z4dX„ Z5dY„ Z6dZ„ Z7d[„ Z8d\„ Z9ej                             d9d]d^d_gd`fdadbgdcfdddegdffdgdhgdiff	¦  «        ej                             djddkgf¦  «        dl„ ¦   «         ¦   «         Z:ej                             d9d]d^d_gd`fdadbgdcfdddegdffdgdhgdiff	¦  «        ej                             djddkgf¦  «        dm„ ¦   «         ¦   «         Z;dn„ Z<do„ Z=dp„ Z>dq„ Z?dr„ Z@ej                             d;ej        ej        f¦  «        ds„ ¦   «         ZAej                             dtdudvgdvff¦  «        dw„ ¦   «         ZBej                             dtdudvgdvff¦  «        dx„ ¦   «         ZCej                             djg dy¢ddkdzgf¦  «        d{„ ¦   «         ZDd|„ ZEd}„ ZFej                             dGd~¦  «        d„ ¦   «         ZGe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                             d“d”g d•¢f¦  «        d–„ ¦   «         ZUej                             d—d˜g d™¢f¦  «        dš„ ¦   «         ZVd›„ ZWdœ„ ZXd�„ ZYej                             ddO¦  «        dž„ ¦   «         ZZej                             ddO¦  «        dŸ„ ¦   «         Z[d „ Z\d¡„ Z]d¢„ Z^d£„ Z_ej                             d¤ej`        eja        f¦  «        d¥„ ¦   «         Zbej                             d¤ej`        eja        f¦  «        d¦„ ¦   «         Zcd§„ Zdej                             d¨ ej        ¦   «         d©g eje        ¦   «         d	g ejf        ¦   «         d	gf¦  «        dª„ ¦   «         Zgej                             d¨ ej        ¦   «         d©g eje        ¦   «         d	g ejf        ¦   «         d	gf¦  «        d«„ ¦   «         Zhd¬„ Zid­„ Zjd®„ Zkej                             d¯d—d*id“d°id±d²id³dDid´dDif¦  «        dµ„ ¦   «         Zlej                             d¶ej`        ej,        f¦  «        d·„ ¦   «         Zmej                             d¸ddg¦  «        ej                             d¹eja        ejn        ejo        ejp        ejq        g¦  «        dº„ ¦   «         ¦   «         Zrej                             dGg d»¢¦  «        d¼„ ¦   «         Zsej                             d½d¾d¿g¦  «        dÀ„ ¦   «         ZtdS )Á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                               ¦   «                              d¦  «        }t          j        |fd|i| |i¤Ž t          j         	                    | 
                    ¦   «         d                              ¦   «         d         |¦  «        sJ ‚t                               ¦   «          d S )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        ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/networkx/drawing/tests/test_pylab.pyÚ$test_display_arg_handling_node_colorrM   C   s¶   € õ 	Œ�aÑÔ€AÝÔ˜1˜i¨Ñ1Ô1Ð1Ý�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„JˆqÐ=Ð=˜Ð= J°Ð#<Ð=Ð=Ð=ÝŒ:× Ò  ×!4Ò!4Ñ!6Ô!6°qÔ!9×!HÒ!HÑ!JÔ!JÈ1Ô!MÈxÑXÔXÐXÐXÐXÝ‡I‚I�K„K€K€K€Kó    )r6   r7   ))N)é   rO   rO   rO   )r)   )r)   r)   r)   r)   )Ún_alpha)r   r)   gUUUUUUÕ?ç      Ð?c                 óÜ  — t          j        d¦  «        }t          j        |d„ |                     ¦   «         D ¦   «         d¦  «         t                               ¦   «                              d¦  «        }t          j        ||| ¬¦  «         t          | 	                    ¦   «         d          
                    ¦   «         d d …df         |k    ¦  «        sJ ‚t                               ¦   «          d S )Nr   c                 ó    — i | ]}|d |d z   z  “ŒS )rO   © ©Ú.0Úns     rL   ú
<dictcomp>z8test_display_arg_handling_node_alpha.<locals>.<dictcomp>^   s"   € ÐAÐAÐA°!˜q ! q¨1¡u¡+ÐAÐAÐArN   rP   r<   )r=   r   r   é   )r>   r?   r@   ÚnodesrA   rB   rC   rD   ÚallrH   Úget_fcrJ   )r6   r7   rK   r=   s       rL   Ú$test_display_arg_handling_node_alphar]   T   sÒ   € õ 	Œ�aÑÔ€AÝÔ˜1ÐAÐA°q·w²w±y´yÐAÑAÔAÀ9ÑMÔMÐMÝ�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜¨KÐ8Ñ8Ô8Ð8ÝØ×ÒÑÔ˜aÔ ×'Ò'Ñ)Ô)¨!¨!¨!¨Q¨$Ô/°8Ò;ñô ð ð ð õ ‡I‚I�K„K€K€K€KrN   c                  ó   — t          j        d¦  «        } t          j        | d„ |                      ¦   «         D ¦   «         d¦  «         t                               ¦   «                              d¦  «        }t          j        | |d¬¦  «         t           	                    | 
                    ¦   «         d                              ¦   «         j        ddgddgddgd	d	ggk    ¦  «        sJ ‚t                               ¦   «          d S )
Nr   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z.test_display_node_position.<locals>.<dictcomp>i   ó   € Ð<Ð<Ð<¨Q˜q 1 a &Ð<Ð<Ð<rN   r*   r<   )r=   r   r   rO   é   rY   )r>   r?   r@   rZ   rA   rB   rC   rD   Únpr[   rH   Úget_offsetsÚdatarJ   )rK   r=   s     rL   Útest_display_node_positionre   g   sæ   € Ý
Œ�aÑÔ€AÝÔ˜1Ð<Ð<°!·'²'±)´)Ð<Ñ<Ô<¸eÑDÔDÐDÝ�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜¨%Ð0Ñ0Ô0Ð0Ý�6Š6Ø×ÒÑÔ˜aÔ ×,Ò,Ñ.Ô.Ô3¸¸A¸ÀÀAÀÈÈAÈÐQRÐTUÐPVÐ7WÒWñô ð ð ð õ ‡I‚I�K„K€K€K€KrN   c                  ó0  — t          j        ¦   «         } t          j        | d„ |                      ¦   «         D ¦   «         d¦  «         t                               ¦   «                              d¦  «        }t          j        | |d¬¦  «         d„ |                     ¦   «         D ¦   «         d         }t          | 
                    ¦   «         ¦  «        t          d„ |                      ¦   «         D ¦   «         ¦  «        k    sJ ‚t                               ¦   «          d S )	Nc                 ó2   — i | ]\  }}||f||z   d z  rdnd“ŒS )ra   ú-|>r-   rT   ©rV   ÚuÚvs      rL   rX   z0test_display_line_collection.<locals>.<dictcomp>u   s3   € ÐHÐHÐH±d°a¸ˆQ�ˆF˜a !™e q™[Ð1�E�E¨cÐHÐHÐHrN   Ú
arrowstyler<   é
   )r=   r0   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ©Ú
isinstancerE   ÚcollectionsÚLineCollection©rV   Úls     rL   ú
<listcomp>z0test_display_line_collection.<locals>.<listcomp>z   s=   € ð 
ð 
ð 
àÝ�a�œÔ7Ñ8Ô8ð
Ø	ð
ð 
ð 
rN   r   c                 ó(   — g | ]\  }}||z   d z  ¯d‘ŒS )ra   rO   rT   ri   s      rL   ru   z0test_display_line_collection.<locals>.<listcomp>   s)   € Ð&NÐ&NÐ&N©T¨Q°À1ÀqÁ5ÈAÁ+Ð&N qÐ&NÐ&NÐ&NrN   )r>   Úkarate_club_graphÚset_edge_attributesÚedgesrA   rB   rC   rD   rH   ÚlenÚ	get_pathsÚsumrJ   )rK   r=   Úlcs      rL   Útest_display_line_collectionr~   r   sþ   € Ý
ÔÑÔ€AÝÔØ	ÐHÐH¸a¿gºg¹i¼iÐHÑHÔHÈ,ñô ð õ �ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜°Ð3Ñ3Ô3Ð3ð
ð 
à×$Ò$Ñ&Ô&ð
ñ 
ô 
ð ô	
	€Bõ
 ˆr�|Š|‰~Œ~ÑÔ¥#Ð&NÐ&N°Q·W²W±Y´YÐ&NÑ&NÔ&NÑ"OÔ"OÒOÐOÐOÐOÝ‡I‚I�K„K€K€K€KrN   )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                               ¦   «                              d¦  «        }t          j        || |¬¦  «         |                     ¦   «         rd„ |                     ¦   «         D ¦   «         }n)d„ |j	        D ¦   «         d	          
                    ¦   «         }t          ˆfd
„|D ¦   «         ¦  «        sJ ‚t                               ¦   «          d S )NrY   ©Úcreate_usingrŠ   r   r<   )r#   r=   c                 ót   — g | ]5}t          |t          j        j        ¦  «        ¯!|                     ¦   «         ‘Œ6S rT   ©rp   rE   ÚpatchesÚFancyArrowPatchr\   ©rV   Úfs     rL   ru   z2test_display_edge_single_color.<locals>.<listcomp>•   óE   € ð 
ð 
ð 
àÝ˜!�Sœ[Ô8Ñ9Ô9ð
Ø�HŠH‰JŒJð
ð 
ð 
rN   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ro   rs   s     rL   ru   z2test_display_edge_single_color.<locals>.<listcomp>›   ó=   € ð 
ð 
ð 
àÝ˜!�Sœ_Ô;Ñ<Ô<ð
Øð
ð 
ð 
rN   r   c              3   óX   •K  — | ]$}t           j                             |‰¦  «        V — Œ%d S ©N)rE   rF   rG   )rV   Úcr7   s     €rL   ú	<genexpr>z1test_display_edge_single_color.<locals>.<genexpr>    s5   øè è € ÐBÐB°a�sŒz×$Ò$ Q¨Ñ1Ô1ÐBÐBÐBÐBÐBÐBrN   )r>   r?   rx   rA   rB   rC   rD   Úis_directedrH   rq   Ú
get_colorsr[   rJ   )r#   r7   r‹   rK   r=   rF   s    `    rL   Útest_display_edge_single_colorrž   ƒ   s  ø€ õ 	Œ�a jÐ1Ñ1Ô1€AÝÔ˜1˜i¨Ñ1Ô1Ð1Ý�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜Z°Ð7Ñ7Ô7Ð7Ø‡}‚}�„ð ð
ð 
à×(Ò(Ñ*Ô*ð
ñ 
ô 
ˆˆð
ð 
àÔ'ð
ñ 
ô 
ð ô	÷ ŠZ‰\Œ\ð	 	õ
 ÐBÐBÐBÐB¸6ÐBÑBÔBÑBÔBÐBÐBÐBÝ‡I‚I�K„K€K€K€KrN   c                 ó  — t          j        d| ¬¦  «        }t          j        |dddœd¦  «         t                               ¦   «                              d¦  «        }t          j        ||¬¦  «         d	d
g}|                     ¦   «         rd„ |                     ¦   «         D ¦   «         }n)d„ |j	        D ¦   «         d          
                    ¦   «         }t          j                             ||¦  «        sJ ‚t                               ¦   «          d S )NrY   r�   r8   ©r   r   rO   ©©r   rO   ©rO   ra   r   r<   ©r=   r9   r‰   c                 ót   — g | ]5}t          |t          j        j        ¦  «        ¯!|                     ¦   «         ‘Œ6S rT   r�   r“   s     rL   ru   z5test_display_edge_multiple_colors.<locals>.<listcomp>¬   r•   rN   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ro   rs   s     rL   ru   z5test_display_edge_multiple_colors.<locals>.<listcomp>²   s<   € ð 
ð 
ð 
Ø­°Aµs´Ô7UÑ)VÔ)Vð
Øð
ð 
ð 
rN   r   )r>   r?   rx   rA   rB   rC   rD   rœ   rH   rq   r�   rE   rF   rG   rJ   )r‹   rK   Úaxr7   rF   s        rL   Ú!test_display_edge_multiple_colorsr¨   ¤   s  € å
Œ�a jÐ1Ñ1Ô1€AÝÔ˜1 y¸)ÐDÐDÀgÑNÔNÐNÝ	�Š‰Œ×	!Ò	! #Ñ	&Ô	&€BÝ„Jˆq˜ÐÑÔÐØ�vˆ€HØ‡}‚}�„ð 	ð
ð 
à—_’_Ñ&Ô&ð
ñ 
ô 
ˆˆð
ð 
Ø”~ð
ñ 
ô 
à
ôçŠZ‰\Œ\ð 	õ Œ:× Ò  ¨Ñ2Ô2Ð2Ð2Ð2Ý‡I‚I�K„K€K€K€KrN   c                 ó   — t          j        d| ¬¦  «        }t          j        |d„ |                     ¦   «         D ¦   «         d¦  «         t                               ¦   «                              d¦  «        }t          j        ||¬¦  «         |                     ¦   «         rd„ | 	                    ¦   «         D ¦   «         }n5d„ |j
        D ¦   «         d	         }d
„ |                     ¦   «         D ¦   «         }ddg}d}t          ||¦  «        D ][\  }}|\  }	}
|\  }}t          t          |	|z
  ¦  «        ||fk     ¦  «        r%t          t          |
|z
  ¦  «        ||fk     ¦  «        sJ ‚Œ\t                               ¦   «          d S )NrY   r�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z.test_display_edge_position.<locals>.<dictcomp>¼   r`   rN   r*   r<   r¤   c                 óØ   — g | ]g}t          |t          j        j        ¦  «        ¯!|                     ¦   «         j        d dd…f         |                     ¦   «         j        ddd…f         f‘ŒhS )r   Néþÿÿÿ)rp   rE   r‘   r’   Úget_pathÚverticesr“   s     rL   ru   z.test_display_edge_position.<locals>.<listcomp>À   sr   € ð 
ð 
ð 
àÝ˜!�Sœ[Ô8Ñ9Ô9ð
Ø�ZŠZ‰\Œ\Ô" 1 a a a 4Ô(¨!¯*ª*©,¬,Ô*?ÀÀAÀAÀAÀÔ*FÐGð
ð 
ð 
rN   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ro   rs   s     rL   ru   z.test_display_edge_position.<locals>.<listcomp>Æ   s<   € ð 
ð 
ð 
Ø­°Aµs´Ô7UÑ)VÔ)Vð
Øð
ð 
ð 
rN   r   c                 óR   — g | ]$}|j         d dd…f         |j         ddd…f         f‘Œ%S )r   Néÿÿÿÿ)r®   ©rV   Úps     rL   ru   z.test_display_edge_position.<locals>.<listcomp>É   sH   € ð 
ð 
ð 
Ø67ˆQŒZ˜˜1˜1˜1˜Ô˜qœz¨"¨a¨a¨a¨%Ô0Ð1ð
ð 
ð 
rN   )©r   r   ©rO   rO   )rµ   ©ra   ra   gš™™™™™©?)r>   r?   r@   rZ   rA   rB   rC   rD   rœ   rH   rq   r{   Úzipr[   ÚabsrJ   )r‹   rK   r§   Ú
end_pointsÚline_collectionr7   Ú	thresholdÚaÚeÚ	act_startÚact_endÚ	exp_startÚexp_ends                rL   Útest_display_edge_positionrÂ   ¹   s¹  € å
Œ�a jÐ1Ñ1Ô1€AÝÔ˜1Ð<Ð<°!·'²'±)´)Ð<Ñ<Ô<¸eÑDÔDÐDÝ	�Š‰Œ×	!Ò	! #Ñ	&Ô	&€BÝ„Jˆq˜ÐÑÔÐØ‡}‚}�„ð 
ð
ð 
à—_’_Ñ&Ô&ð
ñ 
ô 
ˆ
ˆ
ð
ð 
Ø”~ð
ñ 
ô 
à
ôˆð
ð 
Ø;J×;TÒ;TÑ;VÔ;Vð
ñ 
ô 
ˆ
ð !Ð"2Ð3€Hð €IÝ�J Ñ)Ô)ð 
ð 
‰ˆˆ1ØÑˆ	�7ØÑˆ	�7Ý•3�y 9Ñ,Ñ-Ô-°¸IÐ0FÒFÑGÔGð 	
ÍCÝ�˜'Ñ!Ñ"Ô" i°Ð%;Ò;ñM
ô M
ð 	
ð 	
ð 
ð 	
õ ‡I‚I�K„K€K€K€KrN   c                  ó&  — t          j        ¦   «         } d„ } || ¦  «        }t                               ¦   «                              d¦  «        }t          j        | ||¬¦  «         d„ t          |                      ¦   «         |                     ¦   «         d          	                    ¦   «         j
        ¦  «        D ¦   «         }|                      ¦   «         D ]#}t          ||         ||         k    ¦  «        sJ ‚Œ$t                               ¦   «          d S )Nc                 ó.   — 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=   c                 ó4   — i | ]\  }}|t          |¦  «        “ŒS rT   ©Útuple)rV   rW   r³   s      rL   rX   z2test_display_position_function.<locals>.<dictcomp>ã   s1   € ð ð ð Ù˜˜1ˆ�5�‰8Œ8ðð ð rN   r   )r>   rw   rA   rB   rC   rD   r·   rZ   rH   rc   rd   r[   rJ   )rK   rÉ   r*   r§   Úact_posrW   s         rL   Útest_display_position_functionrÎ   Ù   sü   € Ý
ÔÑÔ€Að0ð 0ð 0ð ˆ,�q‰/Œ/€CÝ	�Š‰Œ×	!Ò	! #Ñ	&Ô	&€BÝ„Jˆq˜<°Ð3Ñ3Ô3Ð3ðð Ý # A§G¢G¡I¤I¨r¯ªÑ/@Ô/@ÀÔ/C×/OÒ/OÑ/QÔ/QÔ/VÑ WÔ Wðñ ô €Gð �WŠW‰YŒYð )ð )ˆÝ�3�q”6˜W QœZÒ'Ñ(Ô(Ð(Ð(Ð(Ð(Ý‡I‚I�K„K€K€K€KrN   c                 ó  — t          j        d| ¬¦  «        }t          j        |dddœd¦  «         t          j        d         }t          j        |dd|d	¬
¦  «         t                               ¦   «                              d¦  «        }t          j	        ||¬¦  «         t          j
                             |¬¦  «        }|                     dd¦  «         |                     d¦  «        |                     d¦  «        g}|                     ¦   «         rd„ |                     ¦   «         D ¦   «         }n)d„ |j        D ¦   «         d                              ¦   «         }t          j                             |d         |j        d         d         ¦  «        sJ ‚t          j                             |d         |j        d         d         ¦  «        sJ ‚t          j                             ||¦  «        sJ ‚t                               ¦   «          d S )NrY   r�   r   rO   r¡   r   Úplasmar   F)rZ   r<   r¤   ©Úcmapc                 ót   — g | ]5}t          |t          j        j        ¦  «        ¯!|                     ¦   «         ‘Œ6S rT   )rp   rE   r‘   r’   Úget_facecolorr“   s     rL   ru   z/test_display_edge_colormaps.<locals>.<listcomp>÷   óG   € ð 
ð 
ð 
àÝ˜!�Sœ[Ô8Ñ9Ô9ð
Ø�OŠOÑÔð
ð 
ð 
rN   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ro   rs   s     rL   ru   z/test_display_edge_colormaps.<locals>.<listcomp>ý   r—   rN   r¢   r£   )r>   r?   rx   rE   Ú	colormapsÚapply_matplotlib_colorsrA   rB   rC   rD   ÚcmÚScalarMappableÚset_climÚto_rgbarœ   rH   rq   r�   rF   rG   ry   rJ   ©r‹   rK   rÒ   r=   Úmapperr7   rF   s          rL   Útest_display_edge_colormapsrß   ë   sÙ  € å
Œ�a jÐ1Ñ1Ô1€AÝÔ˜1 q°!Ð4Ð4°hÑ?Ô?Ð?ÝŒ=˜Ô"€DÝÔ˜q (¨G°TÀÐGÑGÔGÐGÝ�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜Ð Ñ Ô Ð ÝŒV×"Ò"¨Ð"Ñ-Ô-€FØ
‡O‚O�A�qÑÔÐØ—’˜qÑ!Ô! 6§>¢>°!Ñ#4Ô#4Ð5€HØ‡}‚}�„ð ð
ð 
à×(Ò(Ñ*Ô*ð
ñ 
ô 
ˆˆð
ð 
àÔ'ð
ñ 
ô 
ð ô	÷ ŠZ‰\Œ\ð	 	õ
 Œ:× Ò  ¨!¤¨a¬g°d¬m¸GÔ.DÑEÔEÐEÐEÐEÝŒ:× Ò  ¨!¤¨a¬g°d¬m¸GÔ.DÑEÔEÐEÐEÐEÝŒ:× Ò  ¨6Ñ2Ô2Ð2Ð2Ð2Ý‡I‚I�K„K€K€K€KrN   c                 óB  — t          j        d| ¬¦  «        }t          j        |ddddœd¦  «         t          j        d         }t          j        |dd	|¦  «         t                               ¦   «                              d
¦  «        }t          j	        ||¬¦  «         t          j
                             |¬¦  «        }|                     dd¦  «         |                     d¦  «        |                     d¦  «        |                     d¦  «        g}d„ |j        D ¦   «         d                              ¦   «         }t          j                             |d         |j        d         d	         ¦  «        sJ ‚t          j                             |d         |j        d         d	         ¦  «        sJ ‚t          j                             |d         |j        d         d	         ¦  «        sJ ‚t          j                             ||¦  «        sJ ‚t                               ¦   «          d S )NrY   r�   r   r)   rO   ©r   rO   ra   r   rÐ   r   r<   r¤   rÑ   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ©rp   rE   rq   ÚPathCollection©rV   Úss     rL   ru   z/test_display_node_colormaps.<locals>.<listcomp>  s<   € ð ð ð Ø­°Aµs´Ô7UÑ)VÔ)VðØ	ðð ð rN   ra   )r>   r?   r@   rE   r×   rØ   rA   rB   rC   rD   rÙ   rÚ   rÛ   rÜ   rq   rI   rF   rG   rZ   rJ   rÝ   s          rL   Útest_display_node_colormapsrç     sÓ  € å
Œ�a jÐ1Ñ1Ô1€AÝÔ˜1 !¨°Ð2Ð2°HÑ=Ô=Ð=ÝŒ=˜Ô"€DÝÔ˜q (¨G°TÑ:Ô:Ð:Ý�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜Ð Ñ Ô Ð ÝŒV×"Ò"¨Ð"Ñ-Ô-€FØ
‡O‚O�A�qÑÔÐØ—’˜qÑ!Ô! 6§>¢>°#Ñ#6Ô#6¸¿ºÀqÑ8IÔ8IÐJ€Hðð ØÔ%ðñ ô àô	ç	ŠÑ	Ô	ð õ Œ:× Ò  ¨!¤¨a¬g°a¬j¸Ô.AÑBÔBÐBÐBÐBÝŒ:× Ò  ¨!¤¨a¬g°a¬j¸Ô.AÑBÔBÐBÐBÐBÝŒ:× Ò  ¨!¤¨a¬g°a¬j¸Ô.AÑBÔBÐBÐBÐBÝŒ:× Ò  ¨6Ñ2Ô2Ð2Ð2Ð2Ý‡I‚I�K„K€K€K€KrN   é   Úwidthrm   c                 óÌ  — t          j        d|¬¦  «        }t          j        |dddœd¦  «         t                               ¦   «                              d¦  «        }t          j        || |¬¦  «         |                     ¦   «         rd	„ |                     ¦   «         D ¦   «         }n6t          d
„ |j
        D ¦   «         d                              ¦   «         ¦  «        }||k    sJ ‚d S )NrY   r�   rè   rm   r¡   ré   r<   )r"   r=   c                 ót   — g | ]5}t          |t          j        j        ¦  «        ¯!|                     ¦   «         ‘Œ6S rT   )rp   rE   r‘   r’   Úget_linewidthr“   s     rL   ru   z+test_display_edge_width.<locals>.<listcomp>,  rÕ   rN   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ro   rs   s     rL   ru   z+test_display_edge_width.<locals>.<listcomp>3  s=   € ð ð ð àÝ˜a¥¤Ô!?Ñ@Ô@ðØðð ð rN   r   )r>   r?   rx   rA   rB   rC   rD   rœ   rH   Úlistrq   Úget_linewidths)r6   r7   r‹   rK   r=   Úwidthss         rL   Útest_display_edge_widthrñ     s  € õ 	Œ�a jÐ1Ñ1Ô1€AÝÔ˜1 q°"Ð5Ð5°wÑ?Ô?Ð?Ý�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜[°Ð8Ñ8Ô8Ð8Ø‡}‚}�„ð 
ð
ð 
à×(Ò(Ñ*Ô*ð
ñ 
ô 
ˆˆõ ðð àÔ+ðñ ô ð ô	÷  ’Ñ!Ô!ñ
ô 
ˆð �XÒÐÐÐÐÐrN   ú:Ústylec                 ó  ‡— t          j        d|¬¦  «        }t          j        |dddœd¦  «         t                               ¦   «                              d¦  «        }t          j        || |¬¦  «         |                     ¦   «         rd	„ |                     ¦   «         D ¦   «         }n:ddd
œŠˆfd„d„ |j	        D ¦   «         d          
                    ¦   «         D ¦   «         }||k    sJ ‚t                               ¦   «          d S )NrY   r�   r-   rò   r¡   ró   r<   )r,   r=   c                 ót   — g | ]5}t          |t          j        j        ¦  «        ¯!|                     ¦   «         ‘Œ6S rT   )rp   rE   r‘   r’   Úget_linestyler“   s     rL   ru   z+test_display_edge_style.<locals>.<listcomp>K  rÕ   rN   ))r   N)r   )rO   gffffffú?c                 ój   •— g | ]/}‰|d          |d         �t          |d         ¦  «        ndf         ‘Œ0S )r   rO   NrË   )rV   ræ   Ú
linestyless     €rL   ru   z+test_display_edge_style.<locals>.<listcomp>S  sN   ø€ ð 
ð 
ð 
àð ˜˜!œ¨Q¨q¬TÐ-=�e A a¤D™kœk˜kÀ4ÐHÔIð
ð 
ð 
rN   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ro   rs   s     rL   ru   z+test_display_edge_style.<locals>.<listcomp>U  s=   € ð ð ð àÝ˜a¥¤Ô!?Ñ@Ô@ðØðð ð rN   r   )r>   r?   rx   rA   rB   rC   rD   rœ   rH   rq   Úget_linestylesrJ   )r6   r7   r‹   rK   r=   Ústylesrø   s         @rL   Útest_display_edge_stylerü   <  s2  ø€ õ 	Œ�a jÐ1Ñ1Ô1€AÝÔ˜1 s°CÐ8Ð8¸'ÑBÔBÐBÝ�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜[°Ð8Ñ8Ô8Ð8Ø‡}‚}�„ð 
ð
ð 
à×(Ò(Ñ*Ô*ð
ñ 
ô 
ˆˆð "%°cÐ:Ð:ˆ
ð
ð 
ð 
ð 
ðð àÔ+ðñ ô ð ô	÷  ’Ñ!Ô!ð
ñ 
ô 
ˆð �XÒÐÐÐÝ‡I‚I�K„K€K€K€KrN   c                  óø  — t          j        d¦  «        } t                               ¦   «                              d¦  «        }t          j        | |ddi¬¦  «         d„ |                     ¦   «         D ¦   «         }t          |                      ¦   «         |¦  «        D ]F\  }}| 	                    ¦   «         t          |¦  «        k    sJ ‚|                     ¦   «         dk    sJ ‚ŒGt                               ¦   «          d S )Nr   r<   r   é   )r=   r   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ©rp   rE   ÚtextÚText©rV   Úts     rL   ru   z,test_display_node_labels.<locals>.<listcomp>c  ó+   € ÐOÐOÐO�Aµ*¸QÅÄÄÑ2NÔ2NÐOˆaÐOÐOÐOrN   g      4@)r>   r?   rA   rB   rC   rD   rH   r·   rZ   Úget_textÚstrÚget_sizerJ   )rK   r=   ÚlabelsrW   rt   s        rL   Útest_display_node_labelsr
  _  s×   € Ý
Œ�aÑÔ€AÝ�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜¨V°R¨LÐ9Ñ9Ô9Ð9ØOÐO˜×,Ò,Ñ.Ô.ÐOÑOÔO€FÝ�A—G’G‘I”I˜vÑ&Ô&ð $ð $‰ˆˆ1Ø�zŠz‰|Œ|�s 1™vœvÒ%Ð%Ð%Ð%Ø�zŠz‰|Œ|˜tÒ#Ð#Ð#Ð#Ð#Ý‡I‚I�K„K€K€K€KrN   c                  ó˜  — t          j        d¦  «        } t                               ¦   «                              d¦  «        }t          j        | d„ |                      ¦   «         D ¦   «         ¦  «         t          j        | |ddid ¬¦  «         d„ |                     ¦   «         D ¦   «         }t          |¦  «         t          |                      ¦   «         |¦  «        D ]U\  }}|                     ¦   «         t          |d         |d	         z   ¦  «        k    sJ ‚|                     ¦   «         dk    sJ ‚ŒVt                               ¦   «          d S )
Nr   r<   c                 ó(   — i | ]\  }}||fd ||z   i“ŒS )ÚlabelrT   ri   s      rL   rX   z,test_display_edge_labels.<locals>.<dictcomp>o  s+   € ÐNÐNÐN¹D¸A¸q  1˜v¨°°Q±Ð'7ÐNÐNÐNrN   r   r‚   )r=   r$   r   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   r   r  s     rL   ru   z,test_display_edge_labels.<locals>.<listcomp>q  r  rN   r   rO   )r>   r?   rA   rB   rC   rx   ry   rD   rH   Úprintr·   r  r  Ú	get_colorrJ   )rK   r=   r	  r½   rt   s        rL   Útest_display_edge_labelsr  j  s  € Ý
Œ�aÑÔ€AÝ�ZŠZ‰\Œ\×%Ò% cÑ*Ô*€Fõ Ô˜1ÐNÐNÀAÇGÂGÁIÄIÐNÑNÔNÑOÔOÐOÝ„Jˆq˜¨W°c¨NÀtÐLÑLÔLÐLØOÐO˜×,Ò,Ñ.Ô.ÐOÑOÔO€FÝ	ˆ&�M„M€MÝ�A—G’G‘I”I˜vÑ&Ô&ð $ð $‰ˆˆ1Ø�zŠz‰|Œ|�s 1 Q¤4¨!¨A¬$¡;Ñ/Ô/Ò/Ð/Ð/Ð/Ø�{Š{‰}Œ} Ò#Ð#Ð#Ð#Ð#Ý‡I‚I�K„K€K€K€KrN   c                  óö  — t          j        ¦   «         } |                      g d¢¦  «         |                      g d¢¦  «         t          j        | d„ |                      d¬¦  «        D ¦   «         d¦  «         t                               ¦   «                              d¦  «        }t          j	        | |¬¦  «         d	„ | 
                    ¦   «         D ¦   «         }|g d
¢k    sJ ‚t                               ¦   «          d S )N)ÚAÚBÚCÚD))r  r  Ú0)r  r  Ú1)r  r  ú-1)r  r  r  )r  r  r  )r  r  r  c           	      óF   — i | ]}|d dt          |d         ¦  «        z  › �“ŒS )z	arc3,rad=çš™™™™™É?ra   ©Úint©rV   r½   s     rL   rX   z<test_display_multigraph_non_integer_keys.<locals>.<dictcomp>‡  s1   € ÐIÐIÐI°ˆAÐ,˜3¥ Q q¤T¡¤™?Ð,Ð,ÐIÐIÐIrN   T)ÚkeysÚ	curvaturer<   r¤   c                 ó~   — g | ]:}t          |t          j        j        ¦  «        ¯!|                     ¦   «         j        ‘Œ;S rT   )rp   rE   r‘   r’   Úget_connectionstyleÚradr“   s     rL   ru   z<test_display_multigraph_non_integer_keys.<locals>.<listcomp>‹  sL   € ð ð ð àÝ�a�œÔ4Ñ5Ô5ðØ	×ÒÑÔÔ#ðð ð rN   )r…   r  çš™™™™™É¿r  r$  r…   )r>   Ú
MultiGraphÚadd_nodes_fromÚadd_edges_fromrx   ry   rA   rB   rC   rD   rH   rJ   )rK   r=   Úradss      rL   Ú(test_display_multigraph_non_integer_keysr)  y  s  € Ý
Œ‰Œ€AØ×ÒÐ)Ð)Ð)Ñ*Ô*Ð*Ø×Òð	
ð 	
ð 	
ñ	ô 	ð 	õ ÔØ	ÐIÐI°a·g²gÀ4°gÑ6HÔ6HÐIÑIÔIÈ;ñô ð õ �ZŠZ‰\Œ\×%Ò% cÑ*Ô*€FÝ„Jˆq˜Ð Ñ Ô Ð ðð à×$Ò$Ñ&Ô&ðñ ô €Dð
 Ð3Ð3Ð3Ò3Ð3Ð3Ð3Ý‡I‚I�K„K€K€K€KrN   c                  óø   — t          j        ¦   «         } t          j        t           j        ¦  «        5  t          j        | d¬¦  «         t                               ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )NÚbad_arg)r+  )r>   rw   ÚpytestÚraisesÚNetworkXErrorrD   rA   rJ   rÈ   s    rL   Útest_display_raises_for_bad_argr/  ”  s©   € Ý
ÔÑÔ€AÝ	Œ•rÔ'Ñ	(Ô	(ð ð Ý
Œ
�1˜iÐ(Ñ(Ô(Ð(Ý�	Š	‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ²0A/Á/A3Á6A3c                  ó†  — t          j        dt           j        ¬¦  «        } t          j        | d„ |                      ¦   «         D ¦   «         d¦  «         t
                               ¦   «         }t          j        | |¬¦  «         g d¢d„ |                     ¦   «         D ¦   «         k    sJ ‚t
           	                    ¦   «          d S )Nr   r�   c                 ó0   — i | ]\  }}||f||z   d z   d z  “ŒS )ra   rT   ri   s      rL   rX   z+test_display_arrow_size.<locals>.<dictcomp>ž  s/   € Ð;Ð;Ð;©¨¨AˆQ�ˆF�Q˜‘U˜Q‘Y 1Ñ$Ð;Ð;Ð;rN   Ú	arrowsizer¤   )é	   é   é1   c                 ót   — g | ]5}t          |t          j        j        ¦  «        ¯!|                     ¦   «         ‘Œ6S rT   )rp   rE   r‘   r’   Úget_mutation_scaler“   s     rL   ru   z+test_display_arrow_size.<locals>.<listcomp>¢  sI   € ð ð ð àÝ�a�œÔ4Ñ5Ô5ðØ	×ÒÑÔðð ð rN   )
r>   r?   ÚDiGraphrx   ry   rA   ÚaxesrD   rH   rJ   )rK   r§   s     rL   Útest_display_arrow_sizer:  ›  sÃ   € Ý
Œ�a¥b¤jÐ1Ñ1Ô1€AÝÔØ	Ð;Ð;°·²±´Ð;Ñ;Ô;¸[ñô ð õ 
�Š‰Œ€BÝ„Jˆq˜ÐÑÔÐØˆ;ˆ;ð ð à—’Ñ"Ô"ðñ ô ò ð ð ð õ
 ‡I‚I�K„K€K€K€KrN   c                  ó^  — t          j        d¦  «        } t          j        | dddddœd¦  «         t          j        | d„ |                      ¦   «         D ¦   «         d	¦  «         t	          j        t           j        ¦  «        5  t          j        | ¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )zP
    This test ensures that a error is raised for incomplete position data.
    rè   r´   rµ   r¶   )r   r   )r   rO   ra   r   r*   c                 ó   — i | ]	}||d k     “Œ
S )r   rT   rU   s     rL   rX   z9test_display_mismatched_edge_position.<locals>.<dictcomp>²  s   € Ð;Ð;Ð;¨A˜q ! a¢%Ð;Ð;Ð;rN   ÚvisibleN)r>   r?   r@   rZ   r,  r-  r.  rD   rÈ   s    rL   Ú%test_display_mismatched_edge_positionr>  ª  sæ   € õ 	Œ�aÑÔ€AåÔ˜1 &¨V¸À6ÐJÐJÈEÑRÔRÐRåÔ˜1Ð;Ð;°·²±´Ð;Ñ;Ô;¸YÑGÔGÐGõ 
Œ•rÔ'Ñ	(Ô	(ð ð Ý
Œ
�1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Â B"Â"B&Â)B&)r   ræ   c                 óH  — t                                ¦   «                              d¦  «        }t          j        dg¦  «        }t          j        |dddœd¦  «         t          j        ||| ¬¦  «         d„ |                     ¦   «         D ¦   «         d         }|                     ¦   «          	                    ¦   «         d	d	d
…df         }t                                ¦   «                              d¦  «        }t          j        ||dd| ¬¦  «         d„ |                     ¦   «         D ¦   «         d         }|                     ¦   «          	                    ¦   «         d	d	d
…df         }|d         |d         k    sJ ‚|d         |d         k     sJ ‚t            
                    ¦   «          d	S )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   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   ©rp   rE   r‘   r’   r“   s     rL   ru   z-test_display_edge_margins.<locals>.<listcomp>Õ  s<   € ð ð ð Ø­
°1µc´kÔ6QÑ(RÔ(RðØ	ðð ð rN   r   Nra   éd   )r=   r3   r4   r   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   rA  r“   s     rL   ru   z-test_display_edge_margins.<locals>.<listcomp>â  s<   € ð ð ð Ø­
°1µc´kÔ6QÑ(RÔ(RðØ	ðð ð rN   rO   )rA   rB   rC   r>   r8  r@   rD   rH   Úget_extentsÚcornersrJ   )r   r§   rK   Údefault_arrowÚdefault_extentÚpadded_arrowÚpadded_extents          rL   Útest_display_edge_marginsrJ  »  s¬  € õ* 
�Š‰Œ×	!Ò	! #Ñ	&Ô	&€BÝ
Œ
�F�8ÑÔ€AÝÔ˜1 &¨VÐ4Ð4°eÑ<Ô<Ð<å„Jˆq˜¨
Ð3Ñ3Ô3Ð3ðð Ø—?’?Ñ$Ô$ðñ ô àô	€Mð #×.Ò.Ñ0Ô0×8Ò8Ñ:Ô:¸3¸3¸Q¸3À¸6ÔB€Nå	�Š‰Œ×	!Ò	! #Ñ	&Ô	&€BÝ„JØ	ØØØØðñ ô ð ðð Ø—?’?Ñ$Ô$ðñ ô àô	€Lð !×,Ò,Ñ.Ô.×6Ò6Ñ8Ô8¸¸¸1¸¸a¸Ô@€Mð ˜Ô˜n¨QÔ/Ò/Ð/Ð/Ð/à˜Ô˜n¨QÔ/Ò/Ð/Ð/Ð/Ý‡I‚I�K„K€K€K€KrN   Úticksc                 ó’  — t          j        d¦  «        }t          j        |d„ |                     ¦   «         D ¦   «         d¦  «         t                               ¦   «         }t          j        || ¬¦  «         |j        |j        fD ])}t          | 
                    ¦   «         ¦  «        | k    sJ ‚Œ*t                               ¦   «          d S )NrY   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z+test_display_hide_ticks.<locals>.<dictcomp>ñ  r`   rN   r*   )Ú
hide_ticks)r>   r?   r@   rZ   rA   r9  rD   ÚxaxisÚyaxisÚboolÚget_ticklabelsrJ   )rK  rK   r§   Úaxiss       rL   Útest_display_hide_ticksrT  î  s°   € å
Œ�aÑÔ€AÝÔ˜1Ð<Ð<°!·'²'±)´)Ð<Ñ<Ô<¸eÑDÔDÐDÝ	�Š‰Œ€BÝ„Jˆq˜UÐ#Ñ#Ô#Ð#Ø”˜2œ8Ð$ð 4ð 4ˆÝ�D×'Ò'Ñ)Ô)Ñ*Ô*¨eÒ3Ð3Ð3Ð3Ð3å‡I‚I�K„K€K€K€KrN   c                  óf  — t                                ¦   «         } t          j        ¦   «         }|                     d¦  «         |                     dd¦  «         t          j        |ddid¦  «         t          j        || ¬¦  «         d„ |                      ¦   «         D ¦   «         d         }| 	                    ¦   «         }t          |j        ¦  «         t          |j        ¦  «         |j        dk    r|j        dk    sJ ‚t                                | ¦  «         t                                ¦   «          d S )Nr   r´   r*   r¤   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   rA  r“   s     rL   ru   z*test_display_self_loop.<locals>.<listcomp>  s<   € ð ð ð Ø­
°1µc´kÔ6QÑ(RÔ(RðØ	ðð ð rN   )rA   r9  r>   r8  Úadd_nodeÚadd_edger@   rD   rH   rD  r  ré   ÚheightÚdelaxesrJ   )r§   rK   Úarrowr   s       rL   Útest_display_self_loopr\  ú  s  € Ý	�Š‰Œ€BÝ
Œ
‰Œ€AØ‡J‚Jˆq�M„M€MØ‡J‚Jˆq�!ÑÔÐÝÔ˜1˜q &˜k¨5Ñ1Ô1Ð1Ý„Jˆq˜ÐÑÔÐðð Ø—?’?Ñ$Ô$ðñ ô àô	€Eð ×ÒÑÔ€DÝ	ˆ$Œ*ÑÔÐÝ	ˆ$Œ+ÑÔÐØŒ:˜Š>ˆ>˜dœk¨Ašo˜o˜oÐ-å‡K‚K��O„O€OÝ‡I‚I�K„K€K€K€KrN   c                  óŠ   — t          j        ¦   «         } t          j        | ¦  «         t          j        | d¦  «        i k    sJ ‚dS )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>   rw   rD   Úget_node_attributesrÈ   s    rL   Útest_display_remove_pos_attrr_    sD   € õ 	ÔÑÔ€AÝ„Jˆq�M„M€MÝÔ! !Ð%HÑIÔIÈRÒOÐOÐOÐOÐOÐOrN   c               #   ó´   K  — t                                ¦   «         \  } }| |fV — t                                |¦  «         t                                ¦   «          d S r™   )rA   ÚsubplotsrZ  rJ   )Úfigr§   s     rL   ra  ra    sD   è è € å�lŠl‰nŒn�G€CˆØ
ˆrˆ'€M€M€MÝ‡K‚K��O„O€OÝ‡I‚I�K„K€K€K€KrN   Úfunctionc                 ó´   — | t           j        k    rt          j        dd¬¦  «         |\  }}ddddœ} | t          fi |¤Ž |                     |dz  ¦  «         d S )	NÚscipyz draw_kamada_kawai requires scipy)Úreasonr€   rB  rY   )r
   r   ré   útest.ps)r>   Údraw_kamada_kawair,  ÚimportorskipÚbarbellÚsavefig)rc  ra  Útmp_pathrb  Ú_Úoptionss         rL   Ú	test_drawro     sv   € ð •2Ô'Ò'Ð'ÝÔ˜GÐ,NÐOÑOÔOÐOØ�F€CˆØ$°3ÀÐCÐC€GØ€H�WÐ Ð ˜Ð Ð Ð Ø‡K‚K�˜9Ñ$Ñ%Ô%Ð%Ð%Ð%rN   c                 ó   — | \  }}t          t          d¦  «        ¦  «        t          t          dd¦  «        ¦  «        t          t          dd¦  «        ¦  «        g}t          j        t          |¬¦  «         |                     |dz  ¦  «         d S )Nr   rm   é   )Únlistrg  )rî   Úranger>   Ú
draw_shellrj  rk  )ra  rl  rb  rm  rr  s        rL   Útest_draw_shell_nlistru  6  su   € Ø�F€CˆÝ•%˜‘(”(‰^Œ^�T¥%¨¨2¡,¤,Ñ/Ô/µµe¸BÀ±m´mÑ1DÔ1DÐE€EÝ„M•' Ð'Ñ'Ô'Ð'Ø‡K‚K�˜9Ñ$Ñ%Ô%Ð%Ð%Ð%rN   c                 ó’   — | \  }}t          j        dd¦  «        }t          j        |¦  «         |                     |dz  ¦  «         d S )Nra   rè   rg  )r>   Úcomplete_bipartite_graphÚdraw_bipartiterk  )ra  rl  rb  rm  rK   s        rL   Útest_draw_bipartitery  =  sK   € Ø�F€CˆÝ
Ô# A qÑ)Ô)€AÝÔ�aÑÔÐØ‡K‚K�˜9Ñ$Ñ%Ô%Ð%Ð%Ð%rN   c                  ó¬   — t          t                               ¦   «         ¦  «        } t          j        t          | dt
          j        j        d¬¦  «         d S )Nr   T)r#   ré   Ú	edge_cmapÚwith_labels)rs  rj  Únumber_of_edgesr>   Údraw_springrA   rÙ   ÚBlues)rF   s    rL   Útest_edge_colormapr€  D  sN   € Ý•7×*Ò*Ñ,Ô,Ñ-Ô-€FÝ„NÝ˜F¨!µs´v´|ÐQUðñ ô ð ð ð rN   c                 óä   — | \  }}d}t          j        |g¦  «        }d„ |D ¦   «         }t          j        ||¬¦  «         t          j        |||di¬¦  «         |                     |dz  ¦  «         d S )Nr¢   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z2test_draw_networkx_edge_labels.<locals>.<dictcomp>P  ó   € Ð
 Ð
 Ð
 ˜ˆ1ˆq�!ˆfÐ
 Ð
 Ð
 rN   )r*   Úedge©Úedge_labelsrg  )r>   r8  ÚdrawÚdraw_networkx_edge_labelsrk  )ra  rl  rb  rm  r„  rK   r*   s          rL   Útest_draw_networkx_edge_labelsr‰  L  s‚   € Ø�F€CˆØ€DÝ
Œ
�D�6ÑÔ€AØ
 Ð
 ˜aÐ
 Ñ
 Ô
 €CÝ„GˆA�3ÐÑÔÐÝÔ   C°d¸F°^ÐDÑDÔDÐDØ‡K‚K�˜9Ñ$Ñ%Ô%Ð%Ð%Ð%rN   c                  ó\   — t          j        t                               ¦   «         ¦  «         d S r™   )r>   r~  rj  Úto_directedrT   rN   rL   Útest_arrowsrŒ  V  s$   € Ý„N•7×&Ò&Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)rN   r   r�   r‚   r9   rƒ   r„   r†   r‡   rˆ   r:   )ú#0000ffr‰   r�  r‰   Úedgelistr¢   c                 óê   — t          j        d¦  «        }t          j        |t          j        |¦  «        || ¬¦  «        }t          j                             |                     ¦   «         |¦  «        sJ ‚dS )z`Tests ways of specifying all edges have a single color for edges
    drawn with a LineCollectionrY   ©r*   rŽ  r#   N)r>   r?   Údraw_networkx_edgesÚrandom_layoutrE   rF   rG   r  )r#   r7   rŽ  rK   Údrawn_edgess        rL   Ú!test_single_edge_color_undirectedr”  [  sp   € õ& 	Œ�aÑÔ€AÝÔ(Ø	�rÔ Ñ"Ô"¨XÀ*ðñ ô €Kõ Œ:× Ò  ×!6Ò!6Ñ!8Ô!8¸(ÑCÔCÐCÐCÐCÐCÐCrN   c                 ó  — t          j        dt           j        ¬¦  «        }t          j        |t          j        |¦  «        || ¬¦  «        }|D ]6}t
          j                             |                     ¦   «         |¦  «        sJ ‚Œ7dS )zaTests ways of specifying all edges have a single color for edges drawn
    with FancyArrowPatchesrY   r�   r�  N)	r>   r?   r8  r‘  r’  rE   rF   rG   Úget_edgecolor)r#   r7   rŽ  rK   r“  Úfaps         rL   Útest_single_edge_color_directedr˜  u  s‘   € õ& 	Œ�a¥b¤jÐ1Ñ1Ô1€AÝÔ(Ø	�rÔ Ñ"Ô"¨XÀ*ðñ ô €Kð ð Dð DˆÝŒz×$Ò$ S×%6Ò%6Ñ%8Ô%8¸(ÑCÔCÐCÐCÐCÐCðDð DrN   c                  óf  — t          j        dt           j        ¬¦  «        } d„ t          t	          | ¦  «        ¦  «        D ¦   «         }dD ]¥}t          j        | ||¬¦  «        }|D ]6}t          j                             | 	                    ¦   «         |¦  «        sJ ‚Œ7t          j        | |ddg|¬¦  «        }|D ]6}t          j                             | 	                    ¦   «         |¦  «        sJ ‚Œ7Œ¦t          j        | |g d	¢d
¬¦  «        }|D ]6}t          j                             | 	                    ¦   «         d¦  «        sJ ‚Œ7t          j        | |g d¢d¬¦  «        }|D ]6}t          j                             | 	                    ¦   «         d¦  «        sJ ‚Œ7t          j        | |g d	¢d¬¦  «        }t          j                             |d          	                    ¦   «         |d          	                    ¦   «         ¦  «        sJ ‚|D ]6}t          j                             | 	                    ¦   «         d¦  «        rJ ‚Œ7t          j        | |g d¢d
¬¦  «        }t          j                             |d          	                    ¦   «         |d          	                    ¦   «         ¦  «        sJ ‚t          j                             |d          	                    ¦   «         |d          	                    ¦   «         ¦  «        sJ ‚|D ]6}t          j                             | 	                    ¦   «         d¦  «        rJ ‚Œ7dS )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�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z8test_edge_color_tuple_interpretation.<locals>.<dictcomp>”  ó   € Ð
,Ð
,Ð
,˜ˆ1ˆq�!ˆfÐ
,Ð
,Ð
,rN   )r    ©r   r   rO   rO   ©r#   r¢   r£   )rŽ  r#   ©r¢   r£   ©ra   rY   rœ  r‰   )r¢   r£   rŸ  )rY   r   r    r   rO   ra   rY   N)
r>   r?   r8  rs  rz   r‘  rE   rF   rG   r–  )rK   r*   r'   r“  r—  s        rL   Ú$test_edge_color_tuple_interpretationr   �  s�  € õ 	Œ�a¥b¤jÐ1Ñ1Ô1€AØ
,Ð
,�e¥C¨¡F¤F™mœmÐ
,Ñ
,Ô
,€Cð (ð 
Bð 
BˆåÔ,¨Q°ÀÐCÑCÔCˆØð 	Bð 	BˆCÝ”:×(Ò(¨×):Ò):Ñ)<Ô)<¸bÑAÔAÐAÐAÐAÐAåÔ,Øˆs˜f fÐ-¸"ð
ñ 
ô 
ˆð ð 	Bð 	BˆCÝ”:×(Ò(¨×):Ò):Ñ)<Ô)<¸bÑAÔAÐAÐAÐAÐAð	Bõ Ô(Ø	ˆ3Ð1Ð1Ð1¸lðñ ô €Kð ð Bð BˆÝŒz×$Ò$ S×%6Ò%6Ñ%8Ô%8¸&ÑAÔAÐAÐAÐAÐAõ Ô(Ø	ˆ3Ð9Ð9Ð9Àiðñ ô €Kð ð Bð BˆÝŒz×$Ò$ S×%6Ò%6Ñ%8Ô%8¸&ÑAÔAÐAÐAÐAÐAõ Ô(Ø	ˆ3Ð1Ð1Ð1¸iðñ ô €Kõ Œ:× Ò Ø�AŒ×$Ò$Ñ&Ô&¨°A¬×(DÒ(DÑ(FÔ(Fñô ð ð ð ð ð Fð FˆÝ”:×(Ò(¨×):Ò):Ñ)<Ô)<¸fÑEÔEÐEÐEÐEÐEõ Ô(Ø	ˆ3Ð9Ð9Ð9Àlðñ ô €Kõ Œ:× Ò Ø�AŒ×$Ò$Ñ&Ô&¨°A¬×(DÒ(DÑ(FÔ(Fñô ð ð ð õ Œ:× Ò Ø�AŒ×$Ò$Ñ&Ô&¨°A¬×(DÒ(DÑ(FÔ(Fñô ð ð ð ð ð Fð FˆÝ”:×(Ò(¨×):Ò):Ñ)<Ô)<¸fÑEÔEÐEÐEÐEÐEðFð FrN   c                  óT  — t                                ¦   «         } t          j        t           ¦  «        }d}t          j        | ||¬¦  «        }t          |t          j        |¦  «        ¦  «        D ]9\  }}t          j	         
                    |                     ¦   «         |¦  «        sJ ‚Œ:dS )zZTest that the edge colors are cycled when there are fewer specified
    colors than edges.©r‚   ÚgÚbr�  N)rj  r‹  r>   r’  r‘  r·   Ú	itertoolsÚcyclerE   rF   rG   r–  ©rK   r*   Ú
edgecolorsr“  r—  r7   s         rL   Ú.test_fewer_edge_colors_than_num_edges_directedr©  É  s£   € õ 	×ÒÑÔ€AÝ
Ô
�7Ñ
#Ô
#€CØ €JÝÔ(¨¨C¸JÐGÑGÔG€KÝ˜[­)¬/¸*Ñ*EÔ*EÑFÔFð Dð D‰ˆˆXÝŒz×$Ò$ S×%6Ò%6Ñ%8Ô%8¸(ÑCÔCÐCÐCÐCÐCðDð DrN   c                  óN  — t          j        dt           j        ¬¦  «        } t          j        t          ¦  «        }d}t          j        | ||¬¦  «        }t          ||dd…         ¦  «        D ]9\  }}t          j         	                    | 
                    ¦   «         |¦  «        sJ ‚Œ:dS )z\Test that extra edge colors are ignored when there are more specified
    colors than edges.r   r�   )r‚   r£  r¤  rš   r�  Nr±   )r>   r?   r8  r’  rj  r‘  r·   rE   rF   rG   r–  r§  s         rL   Ú-test_more_edge_colors_than_num_edges_directedr«  Ô  s¦   € õ 	Œ�a¥b¤jÐ1Ñ1Ô1€AÝ
Ô
�7Ñ
#Ô
#€CØ%€JÝÔ(¨¨C¸JÐGÑGÔG€KÝ˜[¨*°S°b°S¬/Ñ:Ô:ð Dð D‰ˆˆXÝŒz×$Ò$ S×%6Ò%6Ñ%8Ô%8¸(ÑCÔCÐCÐCÐCÐCðDð DrN   c                  ó~  — t          j        t          t          j        t          ¦  «        ddgdd¬¦  «        } |                      ¦   «                              ¦   «         }t          |                      ¦   «         ¦  «        dk    sJ ‚t          j	         
                    |d d…         d¦  «        sJ ‚|d         dk    sJ ‚d S ©Nr¢   r£   Úpurpler  )r*   rŽ  r#   r   ra   r±   )r>   r‘  rj  r’  r  Úsqueezerz   r{   rE   rF   rG   )Úedge_collectionr'   s     rL   Ú3test_edge_color_string_with_global_alpha_undirectedr±  ß  s·   € ÝÔ,ÝÝÔ�WÑ%Ô%Ø˜&Ð!ØØðñ ô €Oð 
×	"Ò	"Ñ	$Ô	$×	,Ò	,Ñ	.Ô	.€BÝˆ×(Ò(Ñ*Ô*Ñ+Ô+¨qÒ0Ð0Ð0Ð0ÝŒ:× Ò   C R C¤¨(Ñ3Ô3Ð3Ð3Ð3ØˆbŒ6�SŠ=ˆ=ˆ=ˆ=ˆ=ˆ=rN   c                  ód  — t          j        t                               ¦   «         t          j        t          ¦  «        ddgdd¬¦  «        } t          | ¦  «        dk    sJ ‚| D ]N}|                     ¦   «         }t          j         	                    |d d…         d¦  «        sJ ‚|d         dk    sJ ‚ŒOd S r­  )
r>   r‘  rj  r‹  r’  rz   r–  rE   rF   rG   )r“  r—  r'   s      rL   Ú1test_edge_color_string_with_global_alpha_directedr³  í  sÂ   € ÝÔ(Ý×ÒÑÔÝÔ�WÑ%Ô%Ø˜&Ð!ØØðñ ô €Kõ ˆ{ÑÔ˜qÒ Ð Ð Ð Øð ð ˆØ×ÒÑ Ô ˆÝŒz×$Ò$ R¨¨¨¤W¨hÑ7Ô7Ð7Ð7Ð7Ø�"Œv˜Š}ˆ}ˆ}ˆ}ˆ}ðð rN   c                 ó  — t          j        d| ¬¦  «        }d„ t          t          |¦  «        ¦  «        D ¦   «         }t          j        ||¦  «        }t          |t          ¦  «        r|d         }|                     ¦   «         dk    sJ ‚dS )z^Test the default linewidth for edges drawn either via LineCollection or
    FancyArrowPatches.ra   r�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z1test_edge_width_default_value.<locals>.<dictcomp>  r›  rN   r   rO   N)r>   r?   rs  rz   r‘  rp   rî   rì   )r‹   rK   r*   r“  s       rL   Útest_edge_width_default_valuer¶  ü  s‡   € õ 	Œ�a jÐ1Ñ1Ô1€AØ
,Ð
,�e¥C¨¡F¤F™mœmÐ
,Ñ
,Ô
,€CÝÔ(¨¨CÑ0Ô0€KÝ�+�tÑ$Ô$ð %Ø! !”nˆØ×$Ò$Ñ&Ô&¨!Ò+Ð+Ð+Ð+Ð+Ð+rN   )Ú	edgewidthr7   ©rY   rY   rY   c                 ó*  — t          j        d¦  «        }d„ t          t          |¦  «        ¦  «        D ¦   «         }t          j        ||| ¬¦  «        }t          |                     ¦   «         ¦  «        dk    sJ ‚|                     ¦   «         |k    sJ ‚d S )Nr   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z;test_edge_width_single_value_undirected.<locals>.<dictcomp>  r›  rN   ©ré   rY   )r>   r?   rs  rz   r‘  r{   rì   )r·  r7   rK   r*   r“  s        rL   Ú'test_edge_width_single_value_undirectedr¼    s‘   € õ 	Œ�aÑÔ€AØ
,Ð
,�e¥C¨¡F¤F™mœmÐ
,Ñ
,Ô
,€CÝÔ(¨¨C°yÐAÑAÔA€KÝˆ{×$Ò$Ñ&Ô&Ñ'Ô'¨1Ò,Ð,Ð,Ð,Ø×$Ò$Ñ&Ô&¨(Ò2Ð2Ð2Ð2Ð2Ð2rN   c                 ó(  — t          j        dt           j        ¬¦  «        }d„ t          t	          |¦  «        ¦  «        D ¦   «         }t          j        ||| ¬¦  «        }t	          |¦  «        dk    sJ ‚|D ]}|                     ¦   «         |k    sJ ‚Œd S )Nr   r�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z9test_edge_width_single_value_directed.<locals>.<dictcomp>   r›  rN   r»  rY   )r>   r?   r8  rs  rz   r‘  rì   )r·  r7   rK   r*   r“  r—  s         rL   Ú%test_edge_width_single_value_directedr¿    s¢   € õ 	Œ�a¥b¤jÐ1Ñ1Ô1€AØ
,Ð
,�e¥C¨¡F¤F™mœmÐ
,Ñ
,Ô
,€CÝÔ(¨¨C°yÐAÑAÔA€KÝˆ{ÑÔ˜qÒ Ð Ð Ð Øð /ð /ˆØ× Ò Ñ"Ô" hÒ.Ð.Ð.Ð.Ð.ð/ð /rN   rž  r£   c                 ó  — t                                ¦   «         }t          j        |¦  «        }d}t          j        ||| |¬¦  «        }t          |t          j        |¦  «        ¦  «        D ]\  }}|                     ¦   «         |k    sJ ‚Œ d S )N)r)   g       @g      (@)rŽ  ré   )	rj  r‹  r>   r’  r‘  r·   r¥  r¦  rì   )rŽ  rK   r*   rð   r“  r—  Úexpected_widths          rL   Útest_edge_width_sequencerÂ  '  s•   € õ 	×ÒÑÔ€AÝ
Ô
˜1Ñ
Ô
€CØ€FÝÔ(¨¨C¸(È&ÐQÑQÔQ€KÝ" ;µ	´ÀÑ0GÔ0GÑHÔHð 5ð 5Ñˆˆ^Ø× Ò Ñ"Ô" nÒ4Ð4Ð4Ð4Ð4ð5ð 5rN   c                  óJ  — t          j        dt           j        ¬¦  «        } t          j        | ¦  «        }t          j        | |ddg¬¦  «        }d„ |D ¦   «         }t          j        | |ddgdd¬	¦  «        }d
„ |D ¦   «         }t
          j                             ||¦  «        sJ ‚dS )zyTest that edge_vmin and edge_vmax properly set the dynamic range of the
    color map when num edges == len(edge_colors).rY   r�   r   r   r�  c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rT   ©r–  r  s     rL   ru   z7test_edge_color_with_edge_vmin_vmax.<locals>.<listcomp>?  s"   € Ð:Ð:Ð:¨�1—?’?Ñ$Ô$Ð:Ð:Ð:rN   r  gš™™™™™é?)r#   Ú	edge_vminÚ	edge_vmaxc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rT   rÅ  r  s     rL   ru   z7test_edge_color_with_edge_vmin_vmax.<locals>.<listcomp>D  s"   € Ð<Ð<Ð<¨1�Q—_’_Ñ&Ô&Ð<Ð<Ð<rN   N)r>   r?   r8  r’  r‘  rE   rF   rG   )rK   r*   r“  Úorig_colorsÚscaled_colorss        rL   Ú#test_edge_color_with_edge_vmin_vmaxrË  8  s·   € õ 	Œ�a¥b¤jÐ1Ñ1Ô1€AÝ
Ô
˜1Ñ
Ô
€CåÔ(¨¨C¸QÀ¸HÐEÑEÔE€KØ:Ð:¨kÐ:Ñ:Ô:€KåÔ(Ø	ˆ3˜C ˜:°Àðñ ô €Kð =Ð<°Ð<Ñ<Ô<€MÝŒ:× Ò  ¨mÑ<Ô<Ð<Ð<Ð<Ð<Ð<rN   c                  ó$  — t          j        dt           j        ¬¦  «        } d„ t          t	          | ¦  «        ¦  «        D ¦   «         }t          j        | |¦  «        }t	          |¦  «        dk    sJ ‚|D ]}|                     ¦   «         dk    sJ ‚ŒdS )z>Test default linestyle for edges drawn with FancyArrowPatches.r   r�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z9test_directed_edges_linestyle_default.<locals>.<dictcomp>K  r›  rN   rY   ÚsolidN©r>   r?   r8  rs  rz   r‘  rö   )rK   r*   r“  r—  s       rL   Ú%test_directed_edges_linestyle_defaultrÐ  H  s�   € å
Œ�a¥b¤jÐ1Ñ1Ô1€AØ
,Ð
,�e¥C¨¡F¤F™mœmÐ
,Ñ
,Ô
,€Cõ Ô(¨¨CÑ0Ô0€KÝˆ{ÑÔ˜qÒ Ð Ð Ð Øð .ð .ˆØ× Ò Ñ"Ô" gÒ-Ð-Ð-Ð-Ð-ð.ð .rN   )Údashedú--©rO   rµ   c                 ó(  — t          j        dt           j        ¬¦  «        }d„ t          t	          |¦  «        ¦  «        D ¦   «         }t          j        ||| ¬¦  «        }t	          |¦  «        dk    sJ ‚|D ]}|                     ¦   «         | k    sJ ‚ŒdS )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�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z>test_directed_edges_linestyle_single_value.<locals>.<dictcomp>b  r›  rN   ©ró   rY   NrÏ  )ró   rK   r*   r“  r—  s        rL   Ú*test_directed_edges_linestyle_single_valuer×  T  s¢   € õ 	Œ�a¥b¤jÐ1Ñ1Ô1€AØ
,Ð
,�e¥C¨¡F¤F™mœmÐ
,Ñ
,Ô
,€CåÔ(¨¨C°uÐ=Ñ=Ô=€KÝˆ{ÑÔ˜qÒ Ð Ð Ð Øð ,ð ,ˆØ× Ò Ñ"Ô" eÒ+Ð+Ð+Ð+Ð+ð,ð ,rN   Ú	style_seqrÑ  rÒ  rÓ  )rÒ  r-   rò   )rÒ  r-   rò   z-.c                 ón  — t          j        dt           j        ¬¦  «        }d„ t          t	          |¦  «        ¦  «        D ¦   «         }t          j        ||| ¬¦  «        }t	          |¦  «        dk    sJ ‚t          |t          j        | ¦  «        ¦  «        D ]\  }}| 	                    ¦   «         |k    sJ ‚Œ dS )zˆTests support for specifying linestyles with sequences in
    ``draw_networkx_edges`` for FancyArrowPatch outputs (e.g. directed edges).r   r�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z:test_directed_edges_linestyle_sequence.<locals>.<dictcomp>z  r›  rN   rÖ  rY   N)
r>   r?   r8  rs  rz   r‘  r·   r¥  r¦  rö   )rØ  rK   r*   r“  r—  ró   s         rL   Ú&test_directed_edges_linestyle_sequencerÛ  j  sº   € õ 	Œ�a¥b¤jÐ1Ñ1Ô1€AØ
,Ð
,�e¥C¨¡F¤F™mœmÐ
,Ñ
,Ô
,€CåÔ(¨¨C°yÐAÑAÔA€KÝˆ{ÑÔ˜qÒ Ð Ð Ð Ý˜+¥y¤°yÑ'AÔ'AÑBÔBð ,ð ,‰
ˆˆUØ× Ò Ñ"Ô" eÒ+Ð+Ð+Ð+Ð+ð,ð ,rN   c                  óP  — 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k    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k    rt          |d         |¦  «        sJ ‚d S d S )
Nr   )rr   rä   )r’   r�   é*   rÅ   T©ÚarrowsF)Úmatplotlib.collectionsrr   rä   Úmatplotlib.patchesr’   r>   Úfrucht_graphÚGraphr8  rÇ   Údraw_networkx_nodesrp   r‘  rî   rz   )	rr   rä   r’   rK   ÚdGr*   ÚdposrZ   ry   s	            rL   Útest_return_typesrç  ‚  s¹  € ØEÐEÐEÐEÐEÐEÐEÐEØ2Ð2Ð2Ð2Ð2Ð2å
Œ¥R¤XÐ.Ñ.Ô.€AÝ	Œ¥b¤jÐ	1Ñ	1Ô	1€BÝ
Ô
˜1 2Ð
&Ñ
&Ô
&€CÝÔ˜B RÐ(Ñ(Ô(€DåÔ" 1 cÑ*Ô*€EÝ�e˜^Ñ,Ô,Ð,Ð,Ð,åÔ" 2 t°DÐ9Ñ9Ô9€EÝ�e�TÑ"Ô"Ð"Ð"Ð"Ý
ˆ5�z„z�A‚~€~Ý˜% œ( OÑ4Ô4Ð4Ð4Ð4ÝÔ" 2 t°EÐ:Ñ:Ô:€EÝ�e˜^Ñ,Ô,Ð,Ð,Ð,ÝÔ" 1 d°4Ð8Ñ8Ô8€EÝ�e˜^Ñ,Ô,Ð,Ð,Ð,ÝÔ" 2 s°4Ð8Ñ8Ô8€EÝ�e�TÑ"Ô"Ð"Ð"Ð"Ý
ˆ5�z„z�A‚~€~Ý˜% œ( OÑ4Ô4Ð4Ð4Ð4ð €~Ø4Ð4rN   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#<   d$„ t          d¦  «        D ¦   «         }t          j        | ||d%¬&¦  «         t          j        | ||d%|¬'¦  «         t          j        | |d d(¬)¦  «         t          j        | |d*d+i¬,¦  «         d S )-NrÝ  rÅ   )r   rO   ra   rY   r‚   iô  ç      è?)Únodelistr
   r   r   )r   rè   r   é   r¤  )rQ   r)   ré  r   r   r)   )ré   r   )r¢   r£   rŸ  )rY   r   é   )rŽ  ré   r   r#   )©r   rè   )rè   r   )r   rë  )rë  r   T)rŽ  rß  Úmin_source_marginÚmin_target_marginré   r#   z$a$r   z$b$rO   z$c$ra   z$d$rY   z$\alpha$r   z$\beta$rè   z$\gamma$r   z$\delta$rë  c                 ó*   — i | ]}||d z  dk    rdnd“ŒS )ra   r   Úkr‚   rT   rU   s     rL   rX   z*test_labels_and_colors.<locals>.<dictcomp>Ñ  s*   € Ð>Ð>Ð>°ˆa˜˜A™ š
˜
��¨Ð>Ð>Ð>rN   é   )Ú	font_size)ró  Ú
font_colorF)r†  r+   rí  z4-5r…  )r>   Úcubical_graphrÇ   rä  r‘  rs  Údraw_networkx_labelsrˆ  )rK   r*   r	  rF   s       rL   Útest_labels_and_colorsr÷  œ  s  € Ý
ÔÑÔ€AÝ
Ô
˜1 2Ð
&Ñ
&Ô
&€CåÔØ	ˆ3˜˜˜°#ÀÈDðñ ô ð õ ÔØ	ØØ��ØØØ$Ð$Ð$ðñ ô ð õ Ô˜1˜c¨°CÐ8Ñ8Ô8Ð8ÝÔØ	ØØ1Ð1Ð1ØØØðñ ô ð õ ÔØ	ØØ1Ð1Ð1ØØØðñ ô ð õ ÔØ	ØØ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Ø>Ð>µU¸1±X´XÐ>Ñ>Ô>€FÝÔ˜A˜s F°bÐ9Ñ9Ô9Ð9ÝÔ˜A˜s F°bÀVÐLÑLÔLÐLÝÔ   C°TÀ%ÐHÑHÔHÐHÝÔ   C°f¸e°_ÐEÑEÔEÐEÐEÐErN   c                 ó¬   — | \  }}t          j        t          |¬¦  «         t          j        t          t          j        t          ¦  «        |¬¦  «         d S )N©r§   )r>   r‡  rj  rˆ  Úcircular_layout)ra  rb  r§   s      rL   Ú	test_axesrû  Ù  sI   € Ø�G€CˆÝ„G�G˜ÐÑÔÐÝÔ ¥­"Ô*<½WÑ*EÔ*EÈ"ÐMÑMÔMÐMÐMÐMrN   c                  óT   — t          j        ¦   «         } t          j        | ¦  «         d S r™   )r>   rã  r‡  rÈ   s    rL   Útest_empty_graphrý  ß  s   € Ý
Œ‰
Œ
€AÝ„GˆA�J„J€J€J€JrN   c                  óV  — 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 ‚d S )Nr   r£   rŸ  )rê  T)rŽ  rß  F)rà  r>   rã  r8  rú  rp   rä  rE   rq   rä   r‘  )r   rK   ÚDGr*   s       rL   Ú#test_draw_empty_nodes_return_valuesr   ä  sT  € à!Ð!Ð!Ð!å
Œ�&˜&Ð!Ñ"Ô"€AÝ	Œ�V˜VÐ$Ñ	%Ô	%€BÝ
Ô
˜QÑ
Ô
€CÝÝ
Ô˜q #°Ð3Ñ3Ô3µS´_Ô5Sñô ð ð ð õ Ý
Ô˜r 3°Ð4Ñ4Ô4µc´oÔ6Tñô ð ð ð õ Ô! ! S°2¸dÐCÑCÔCÀrÒIÐIÐIÐIÝÔ! ! S°2¸eÐDÑDÔDÈÒJÐJÐJÐJÝÔ! " c°B¸uÐEÑEÔEÈÒKÐKÐKÐKÝÔ! " c°B¸tÐDÑDÔDÈÒJÐJÐJÐJÐJÐJrN   c                  ó¨   — t          j        dt           j        ¬¦  «        } t          j        | dg¬¦  «         t          j        | dgg d¢¬¦  «         d S )NrY   r�   )r   rO   r   ©rŽ  )rm   rþ   r   )rŽ  r   )r>   r?   ÚMultiDiGraphÚdraw_networkxrÈ   s    rL   Útest_multigraph_edgelist_tuplesr  ú  sT   € å
Œ�a¥b¤oÐ6Ñ6Ô6€AÝÔ�Q ) Ð-Ñ-Ô-Ð-ÝÔ�Q ) ¸¸¸ÐDÑDÔDÐDÐDÐDrN   c                  óH  ‡— t          j        t          ¦  «        } t                               ¦   «         }|                     d¦  «         t          j        t          | ddg¬¦  «         t          t          j        ¦  «        Šˆfd„t          ‰¦  «        D ¦   «         }t          ‰¦  «        }|                     d¦  «         t          j        t          | ||¬¦  «         | 
                    d¦  «         |                     d	¦  «         t          j        t          | |¬¦  «         d S )
Néƒ   çš™™™™™¹?r  )r   c                 ó   •— g | ]}|‰z  ‘ŒS rT   rT   )rV   ÚxÚ	num_nodess     €rL   ru   z#test_alpha_iter.<locals>.<listcomp>	  s   ø€ Ð5Ð5Ð5˜qˆQ�‰]Ð5Ð5Ð5rN   é„   )r
   r   rO   é…   )r>   r’  rj  rA   rB   rC   rä  rz   rZ   rs  Úappend)r*   rb  r   rF   r  s       @rL   Útest_alpha_iterr    sö   ø€ Ý
Ô
�7Ñ
#Ô
#€CÝ
�*Š*‰,Œ,€Cà‡O‚O�CÑÔÐÝÔ�7 C°°S¨zÐ:Ñ:Ô:Ð:å•G”MÑ"Ô"€IØ5Ð5Ð5Ð5¥E¨)Ñ$4Ô$4Ð5Ñ5Ô5€EÝ�9ÑÔ€FØ‡O‚O�CÑÔÐÝÔ�7 C°FÀ%ÐHÑHÔHÐHà	‡L‚L��O„O€OØ‡O‚O�CÑÔÐÝÔ�7 C¨uÐ5Ñ5Ô5Ð5Ð5Ð5rN   c                 óÐ   — | \  }}t          j        d¦  «        }t          j        |g d¢|¬¦  «         d„ |                     ¦   «         D ¦   «         }t	          |¦  «        dk    sJ ‚d S )Nr   )r   Úhræ   ú^)r   r§   c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   rã   rå   s     rL   ru   z-test_multiple_node_shapes.<locals>.<listcomp>  s<   € ð ð ð Ø­
°1µc´oÔ6TÑ(UÔ(UðØ	ðð ð rN   )r>   r?   r‡  rH   rz   )ra  rb  r§   rK   Úscatterss        rL   Útest_multiple_node_shapesr    s   € Ø�G€CˆÝ
Œ�aÑÔ€AÝ„GˆAÐ.Ð.Ð.°2Ð6Ñ6Ô6Ð6ðð Ø—?’?Ñ$Ô$ðñ ô €Hõ ˆx‰=Œ=˜AÒÐÐÐÐÐrN   c                 ó2  — t          j        ¦   «         }| \  }}t          j        ||d„ |                     ¦   «         D ¦   «         d„ |                     ¦   «         D ¦   «         ¬¦  «         t	          |                     ¦   «         d„ |                     ¦   «         D ¦   «         ¦  «        D ]o\  }}|dz  rdnd}t          j                             | 	                    ¦   «         |¦  «        sJ ‚t          |dz  d	z   ¦  «        |                     ¦   «         k    sJ ‚Œpd S )
Nc                 ó"   — i | ]}||d z  rdnd“ŒS )ra   rñ  r‚   rT   rU   s     rL   rX   z7test_individualized_font_attributes.<locals>.<dictcomp>#  s'   € Ð@Ð@Ð@°�A˜a !™eÐ,�s�s¨Ð@Ð@Ð@rN   c                 ó:   — i | ]}|t          |d z  dz   ¦  «        “ŒS )ç""""""@rè   r  rU   s     rL   rX   z7test_individualized_font_attributes.<locals>.<dictcomp>$  s+   € Ð@Ð@Ð@°�1•c˜!˜w™-¨!Ñ+Ñ,Ô,Ð@Ð@Ð@rN   )r§   rô  ró  c                 óš   — g | ]H}t          |t          j        j        ¦  «        r't	          |                     ¦   «         ¦  «        d k    ¯F|‘ŒIS ©r   )rp   rE   r  r  rz   r  r  s     rL   ru   z7test_individualized_font_attributes.<locals>.<listcomp>(  sU   € ð 	
ð 	
ð 	
àÝ˜!�SœXœ]Ñ+Ô+ð	
õ 14°A·J²J±L´LÑ0AÔ0AÀAÒ0EÐ0Eð à0EÐ0EÐ0ErN   ra   r€   r9   r  rè   )r>   rw   r‡  rZ   r·   rH   rE   rF   rG   r  r  r  )ra  rK   rb  r§   rW   r  r7   s          rL   Ú#test_individualized_font_attributesr    s+  € Ý
ÔÑÔ€AØ�G€CˆÝ„GØ	ØØ@Ð@°a·g²g±i´iÐ@Ñ@Ô@Ø@Ð@°a·g²g±i´iÐ@Ñ@Ô@ð	ñ ô ð õ Ø	�Š‰	Œ	ð	
ð 	
à—_’_Ñ&Ô&ð	
ñ 	
ô 	
ñô ð 6ð 6‰ˆˆ1ð   !™eÐ.�7�7¨ˆåŒz×$Ò$ Q§[¢[¡]¤]°HÑ=Ô=Ð=Ð=Ð=Ý�1˜‘= 1Ñ$Ñ%Ô%¨¯ª©¬Ò5Ð5Ð5Ð5Ð5ð6ð 6rN   c                 óš  — t          j        ¦   «         }| \  }}d„ |                     ¦   «         D ¦   «         }d„ |                     ¦   «         D ¦   «         }t          j        ||d||¬¦  «         d„ |                     ¦   «         D ¦   «         }t          |                     ¦   «         |¦  «        D ]œ\  }}|                     ¦   «         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          |                     ¦   «         |	¦  «        sJ ‚Œ�d S )
Nc                 ó4   — g | ]\  }}||z   d z  dk    rdnd‘ŒS )ra   r   rh   ú-[rT   ri   s      rL   ru   z7test_individualized_edge_attributes.<locals>.<listcomp>7  s2   € ÐMÐMÐM¹4¸1¸a˜Q ™U a™K¨1Ò,Ð,�5�5°$ÐMÐMÐMrN   c                 ó6   — g | ]\  }}d |dz  |dz  z   z  d z   ‘ŒS )rm   ra   rT   ri   s      rL   ru   z7test_individualized_edge_attributes.<locals>.<listcomp>8  s2   € ÐBÐBÐB±°°1�"˜˜A™  A¡™Ñ&¨Ñ+ÐBÐBÐBrN   T)r§   rß  rl   r2  c                 óP   — g | ]#}t          |t          j        j        ¦  «        ¯!|‘Œ$S rT   rA  r“   s     rL   ru   z7test_individualized_edge_attributes.<locals>.<listcomp>:  s<   € ð ð ð Ø­
°1µc´kÔ6QÑ(RÔ(RðØ	ðð ð rN   rm   r   ra   rO   )r>   rw   ry   r‡  rH   r·   r7  r|   rE   r‘   Ú
ArrowStyleÚBracketBÚCurveFilledBrp   Úget_arrowstyle)
ra  rK   rb  r§   ÚarrowstylesÚ
arrowsizesrß  r½   r¼   r7   s
             rL   Ú#test_individualized_edge_attributesr(  4  sW  € Ý
ÔÑÔ€AØ�G€CˆØMÐMÀ1Ç7Â7Á9Ä9ÐMÑMÔM€KØBÐB¸¿º¹	¼	ÐBÑBÔB€JÝ„GˆA�"˜T¨kÀZÐPÑPÔPÐPðð Ø—?’?Ñ$Ô$ðñ ô €Fõ �A—G’G‘I”I˜vÑ&Ô&ð 8ð 8‰ˆˆ1Ø×#Ò#Ñ%Ô%¨¨q°¬t°a©x¸!¸A¼$À¹(Ñ/BÑ)CÀbÑ)HÒHÐHÐHÐHõ �1‰vŒv˜‰zð5�CŒKÔ"Ô+Ð+å”Ô'Ô4ð 	õ
 ˜!×*Ò*Ñ,Ô,¨hÑ7Ô7Ð7Ð7Ð7Ð7ð8ð 8rN   c                  ó¤   — t          j        t          d¬¦  «        5  t          j        t
          d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzReceived invalid argument©ÚmatchÚbar)Úfoo)r,  r-  Ú
ValueErrorr>   r‡  rj  rT   rN   rL   Útest_error_invalid_kwdsr/  G  s‘   € Ý	Œ•zÐ)DÐ	EÑ	EÔ	Eð $ð $Ý
Œ•˜UÐ#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   œAÁA	ÁA	c                  óÎ   — t          j        g d¢¦  «        } g d¢}t          j        t          d¬¦  «        5  t          j        | |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r¢   ©r   ra   ©r   rY   ©rO   rY   )rO   ra   rY   z1arrowsize should have the same length as edgelistr*  )r2  )r>   r8  r,  r-  r.  r‡  )rK   r2  s     rL   Ú+test_draw_networkx_arrowsize_incorrect_sizer4  L  s¹   € Ý
Œ
Ð3Ð3Ð3Ñ4Ô4€AØ�	�	€IÝ	ŒÝÐMð
ñ 
ô 
ð (ð (õ 	Œ�˜YÐ'Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   ¶AÁAÁ!Ar2  é   )rm   rþ   r5  c                 ód  — t          j        g d¢¦  «        }ddddœ}t          j        ||| ¬¦  «        }t          | t          ¦  «        rt          j        | ¦  «        n| } t          || ¦  «        D ]@\  }}t          |t          j	        j
        ¦  «        sJ ‚|                     ¦   «         |k    sJ ‚ŒAd S )N©r¢   r1  r£   r´   r¢   ©rO   r   rá   )r*   r2  )r>   r8  r‘  rp   r  r¥  Úrepeatr·   rE   r‘   r’   r7  )r2  rK   r*   ry   r—  r7   s         rL   Útest_draw_edges_arrowsizer:  U  sÄ   € å
Œ
Ð+Ð+Ð+Ñ,Ô,€AØ˜ FÐ
+Ð
+€CÝÔ" 1¨#¸ÐCÑCÔC€Eå/9¸)ÅSÑ/IÔ/IÐX•	Ô  Ñ+Ô+Ð+Èy€Iå˜U IÑ.Ô.ð 4ð 4‰ˆˆXÝ˜#�sœ{Ô:Ñ;Ô;Ð;Ð;Ð;Ø×%Ò%Ñ'Ô'¨8Ò3Ð3Ð3Ð3Ð3ð4ð 4rN   rl   rh   ©rh   r  z<|-|>c                 ó  — 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 ]P\  }}t          |t          j        j        ¦  «        sJ ‚t          |                     ¦   «         ||         ¦  «        sJ ‚ŒQd S )Nr7  r´   r¢   r8  rá   )r*   rl   r;  )r>   r8  r‘  rp   r  r¥  r9  rE   r‘   r"  r$  r#  ÚCurveFilledABr·   r’   r%  )rl   rK   r*   ry   Úarrow_objectsr—  r7   s          rL   Útest_draw_edges_arrowstyler?  b  s  € å
Œ
Ð+Ð+Ð+Ñ,Ô,€AØ˜ FÐ
+Ð
+€CÝÔ" 1¨#¸*ÐEÑEÔE€Eõ )3°:½sÑ(CÔ(CÐS�	Ô˜Ñ$Ô$Ð$Èð õ
 Œ{Ô%Ô2ÝŒkÔ$Ô-Ý”Ô'Ô5ðð €Mõ ˜U JÑ/Ô/ð Ið I‰ˆˆXÝ˜#�sœ{Ô:Ñ;Ô;Ð;Ð;Ð;Ý˜#×,Ò,Ñ.Ô.°¸hÔ0GÑHÔHÐHÐHÐHÐHðIð IrN   c                  óp   — t          j        t          t                               ddg¦  «        ¬¦  «         d S )Nr1  r2  r  )r>   r  rj  rb   ÚarrayrT   rN   rL   Útest_np_edgelistrB  w  s/   € åÔ•W¥r§x¢x°¸Ð0@Ñ'AÔ'AÐBÑBÔBÐBÐBÐBrN   c                  óÔ   — t          j        d¦  «        } dddœ}t          j        t           j        d¬¦  «        5  t          j        | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrY   r´   rµ   r¢   zhas no positionr*  )r>   r?   r,  r-  r.  rä  ©rK   r*   s     rL   Ú*test_draw_nodes_missing_node_from_positionrE  |  s®   € Ý
Œ�aÑÔ€AØ˜Ð
 Ð
 €CÝ	Œ•rÔ'Ð/@Ð	AÑ	AÔ	Að 'ð 'Ý
Ô˜q #Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   ºAÁA!Á$A!c                 óØ   — | \  }}t          j        d¦  «        }d„ |D ¦   «         }g d¢}t          j        ||d||¬¦  «        }t          |                     ¦   «         ¦  «        dk    sJ ‚dS )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è   c                 ó   — i | ]}|||f“ŒS rT   rT   )rV   Úis     rL   rX   zNtest_draw_networkx_nodes_node_shape_list_with_scalar_color.<locals>.<dictcomp>Œ  rƒ  rN   )r   r  r   r  r   r9   )r
   r   r§   r   N)r>   Úempty_graphrä  rz   rc   )ra  rb  r§   rK   r*   ÚshapesrZ   s          rL   Ú:test_draw_networkx_nodes_node_shape_list_with_scalar_colorrK  ƒ  s�   € ð �G€Cˆå
Œ�qÑÔ€AØ
 Ð
 ˜aÐ
 Ñ
 Ô
 €Cà&Ð&Ð&€FåÔ"Ø	ØØØØðñ ô €Eõ ˆu× Ò Ñ"Ô"Ñ#Ô# aÒ'Ð'Ð'Ð'Ð'Ð'rN   c                 óÔ  — |\  }}t          j        dg¦  «        }dddœ}t          j        |||| ¬¦  «        d         }|                     ¦   «                              ¦   «         ddd…df         }t          j        |||| dd¬	¦  «        d         }|                     ¦   «                              ¦   «         ddd…df         }	|	d         |d         k    sJ ‚|	d
         |d
         k     sJ ‚dS )áõ  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´   r8  ©r§   r   r   Nra   rB  ©r§   r   rî  rï  rO   )r>   r8  r‘  rD  rE  )
r   ra  rb  r§   rK   r*   Údefault_patchrG  Úpadded_patchrI  s
             rL   Ú)test_draw_edges_min_source_target_marginsrR     s  € ð& �G€CˆÝ
Œ
�F�8ÑÔ€AØ˜Ð
 Ð
 €Cõ Ô*¨1¨c°bÀZÐPÑPÔPÐQRÔS€MØ"×.Ò.Ñ0Ô0×8Ò8Ñ:Ô:¸3¸3¸Q¸3À¸6ÔB€Nõ Ô)Ø	ØØØØØðñ ô ð ô	€Lð !×,Ò,Ñ.Ô.×6Ò6Ñ8Ô8¸¸¸1¸¸a¸Ô@€Mð ˜Ô˜n¨QÔ/Ò/Ð/Ð/Ð/à˜Ô˜n¨QÔ/Ò/Ð/Ð/Ð/Ð/Ð/rN   c           	      ó`  — |\  }}t          j        ddg¦  «        }ddddœ}t          j        |||| ¬¦  «        }d„ |D ¦   «         }t          j        |||| d	d
gd	d
g¬¦  «        }d„ |D ¦   «         }	t          ||	¦  «        D ]-\  }
}|d         |
d         k    sJ ‚|d         |
d         k     sJ ‚Œ.dS )rM  r¢   r£   r´   r8  )ra   r   rá   rN  c                 óp   — g | ]3}|                      ¦   «                              ¦   «         d d d…df         ‘Œ4S ©Nra   r   ©rD  rE  )rV   Úds     rL   ru   zHtest_draw_edges_min_source_target_margins_individual.<locals>.<listcomp>è  s;   € ÐOÐOÐO¸A�a—m’m‘o”o×-Ò-Ñ/Ô/°°°!°°Q°Ô7ÐOÐOÐOrN   éb   éf   rO  c                 óp   — g | ]3}|                      ¦   «                              ¦   «         d d d…df         ‘Œ4S rU  rV  r²   s     rL   ru   zHtest_draw_edges_min_source_target_margins_individual.<locals>.<listcomp>ó  s;   € ÐMÐMÐM¸1�Q—]’]‘_”_×,Ò,Ñ.Ô.¨s¨s°¨s°A¨vÔ6ÐMÐMÐMrN   r   rO   N)r>   r8  r‘  r·   )r   ra  rb  r§   rK   r*   rP  rG  rQ  rI  rW  r³   s               rL   Ú4test_draw_edges_min_source_target_margins_individualr[  Ï  sü   € ð& �G€CˆÝ
Œ
�F˜FÐ#Ñ$Ô$€AØ˜ FÐ
+Ð
+€Cõ Ô*¨1¨c°bÀZÐPÑPÔP€MØOÐOÀÐOÑOÔO€Nõ Ô)Ø	ØØØØ˜s˜)Ø˜s˜)ðñ ô €Lð NÐMÀÐMÑMÔM€MÝ�N MÑ2Ô2ð ð ‰ˆˆ1ð �Œt�a˜”dŠ{ˆ{ˆ{ˆ{à�Œt�a˜”dŠ{ˆ{ˆ{ˆ{ˆ{ðð rN   c                 ó  — | \  }}t          j        ¦   «         }|                     d¦  «         |                     dd¦  «         t          j        |ddi¦  «        d         }|                     ¦   «         }|j        dk    r|j        dk    sJ ‚dS )zDEnsure that selfloop extent is non-zero when there is only one node.r   r´   N)r>   r8  rW  rX  r‘  rD  ré   rY  )ra  rb  r§   rK   Úpatchr   s         rL   Ú&test_nonzero_selfloop_with_single_noder^  ü  s…   € ð �G€Cˆå
Œ
‰Œ€AØ‡J‚Jˆq�M„M€MØ‡J‚Jˆq�!ÑÔÐåÔ" 1 q¨& kÑ2Ô2°1Ô5€Eà×ÒÑÔ€DØŒ:˜Š>ˆ>˜dœk¨Ašo˜o˜oÐ-˜o˜orN   c                 ó2  — | \  }}t          j        dt           j        ¬¦  «        }|                     dd¦  «         d„ |j        D ¦   «         }t          j        ||dg¬¦  «        d         }|                     ¦   «         }|j        dk    r|j        dk    sJ ‚dS )	zfEnsure that selfloop extent is non-zero when only a single edge is
    specified in the edgelist.
    ra   r�   rO   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   zFtest_nonzero_selfloop_with_single_edge_in_edgelist.<locals>.<dictcomp>  ó   € Ð
&Ð
&Ð
&˜ˆ1ˆq�!ˆfÐ
&Ð
&Ð
&rN   rµ   r  r   N)	r>   r?   r8  rX  rZ   r‘  rD  ré   rY  )ra  rb  r§   rK   r*   r]  r   s          rL   Ú2test_nonzero_selfloop_with_single_edge_in_edgelistrb    s™   € ð
 �G€Cˆå
Œ�a¥b¤jÐ1Ñ1Ô1€AØ‡J‚Jˆq�!ÑÔÐØ
&Ð
&˜aœgÐ
&Ñ
&Ô
&€CåÔ" 1 c°V°HÐ=Ñ=Ô=¸aÔ@€Eà×ÒÑÔ€DØŒ:˜Š>ˆ>˜dœk¨Ašo˜o˜oÐ-˜o˜orN   c                  ó¤   — g d¢} g d¢}d}t           j        j                             ||| ¦  «        }t	          |dd…df         |k    ¦  «        sJ ‚dS )zfTest apply_alpha when there is a mismatch between the number of
    supplied colors and elements.
    rá   r¢  r)   Nr±   )r>   ÚdrawingÚnx_pylabÚapply_alphar[   )rê  Ú	colorlistr   Úrgba_colorss       rL   Útest_apply_alphari    sc   € ð ˆyˆy€HØ��€IØ€EÝ”*Ô%×1Ò1°)¸UÀHÑMÔM€KÝˆ{˜1˜1˜1˜b˜5Ô! UÒ*Ñ+Ô+Ð+Ð+Ð+Ð+Ð+rN   c                  ó  — ddl } ddl} t          j        d¦  «        }t          j        dt          j        ¬¦  «        }d„ |D ¦   «         }||fD ]g}t          j        ||d¬¦  «        }t          |¦  «        t          |j        ¦  «        k    sJ ‚t          |d         t          j
        j        ¦  «        sJ ‚Œh||fD ]:}t          j        ||d¬¦  «        }t          |t          j        j        ¦  «        sJ ‚Œ;t          j        ||¦  «        }t          |t          j        j        ¦  «        sJ ‚t          j        ||¦  «        }t          |¦  «        t          |j        ¦  «        k    sJ ‚t          |d         t          j
        j        ¦  «        sJ ‚dS )	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   NrY   r�   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z>test_draw_edges_toggling_with_arrows_kwarg.<locals>.<dictcomp>4  s   € Ð
!Ð
!Ð
!˜ˆ1ˆq�!ˆfÐ
!Ð
!Ð
!rN   TrÞ  F)rà  rá  r>   r?   r8  r‘  rz   ry   rp   rE   r‘   r’   rq   rr   )r   ÚUGrÿ  r*   rK   ry   s         rL   Ú*test_draw_edges_toggling_with_arrows_kwargrm  '  s”  € ð "Ð!Ð!Ð!ØÐÐÐå	Œ�qÑ	Ô	€BÝ	Œ�q¥r¤zÐ	2Ñ	2Ô	2€BØ
!Ð
!˜bÐ
!Ñ
!Ô
!€Cð �"ˆXð Að AˆÝÔ& q¨#°dÐ;Ñ;Ô;ˆÝ�5‰zŒz�S ¤™\œ\Ò)Ð)Ð)Ð)Ý˜% œ(¥C¤KÔ$?Ñ@Ô@Ð@Ð@Ð@Ð@ð �"ˆXð Að AˆÝÔ& q¨#°eÐ<Ñ<Ô<ˆÝ˜%¥¤Ô!?Ñ@Ô@Ð@Ð@Ð@Ð@õ Ô" 2 sÑ+Ô+€EÝ�e�Sœ_Ô;Ñ<Ô<Ð<Ð<Ð<ÝÔ" 2 sÑ+Ô+€EÝˆu‰:Œ:�˜QœW™œÒ%Ð%Ð%Ð%Ý�e˜A”h¥¤Ô ;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<rN   Údrawing_funcc                 ó¬   — dd l }t          j        d¦  «        }|\  }} | ||¬¦  «         t          d„ |j        D ¦   «         ¦  «        sJ ‚|j        rJ ‚d S )Nr   rY   rù  c              3   óT   K  — | ]#}t          |t          j        j        ¦  «        V — Œ$d S r™   ro   ©rV   rš   s     rL   r›   z?test_draw_networkx_arrows_default_undirected.<locals>.<genexpr>P  s1   è è € ÐUÐUÀ�z˜!�Sœ_Ô;Ñ<Ô<ÐUÐUÐUÐUÐUÐUrN   )rà  r>   r?   Úanyrq   r‘   ©rn  ra  r   rK   rb  r§   s         rL   Ú,test_draw_networkx_arrows_default_undirectedrt  I  ss   € à!Ð!Ð!Ð!å
Œ�aÑÔ€AØ�G€CˆØ€L��rÐÑÔÐÝÐUÐUÀbÄnÐUÑUÔUÑUÔUÐUÐUÐUØŒzÐÐˆ>ÐÐrN   c                 óÄ   — dd l }t          j        dt          j        ¬¦  «        }|\  }} | ||¬¦  «         t	          d„ |j        D ¦   «         ¦  «        rJ ‚|j        sJ ‚d S )Nr   rY   r�   rù  c              3   óT   K  — | ]#}t          |t          j        j        ¦  «        V — Œ$d S r™   ro   rq  s     rL   r›   z=test_draw_networkx_arrows_default_directed.<locals>.<genexpr>[  sB   è è € ð ð Ø:;�
�1•c”oÔ4Ñ5Ô5ðð ð ð ð ð rN   )rà  r>   r?   r8  rr  rq   r‘   rs  s         rL   Ú*test_draw_networkx_arrows_default_directedrw  T  s‘   € à!Ð!Ð!Ð!å
Œ�a¥b¤jÐ1Ñ1Ô1€AØ�G€CˆØ€L��rÐÑÔÐÝð ð Ø?A¼~ðñ ô ñ ô ð ð ð ð Œ:ÐÐˆ:ÐÐrN   c                 ó¨   — t          j        d¦  «        }|                     dd¦  «         | \  }}t          j        |ddg|¬¦  «         |j        rJ ‚d S )NrY   r   r¢   r£   )rŽ  r§   )r>   r?   rX  r‡  r‘   )ra  rK   rb  r§   s       rL   Útest_edgelist_kwarg_not_ignoredry  a  s]   € å
Œ�aÑÔ€AØ‡J‚Jˆq�!ÑÔÐØ�G€CˆÝ„GˆA˜ Ð(¨RÐ0Ñ0Ô0Ð0ØŒzÐÐˆ>ÐÐrN   )rK   Úexpected_n_edgesra   c           	      óB  — t          g d¢¦  «        D ]1\  }\  }}|                      ||t          |dz  d¦  «        ¬¦  «         Œ2d„ | D ¦   «         }dddgg d¢fD ]E}t          j        | ||¬¦  «         t          j        | ||¬¦  «        }t          |¦  «        |k    sJ ‚ŒFd	S )
zGDraws edges correctly for 3 types of graphs and checks for valid length©r¢   r¢   r¢   r1  rY   ra   ©r   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   zFtest_draw_networkx_edges_multiedge_connectionstyle.<locals>.<dictcomp>r  rƒ  rN   úarc3,rad=0.1)r  r  úarc3,rad=0.2©ÚconnectionstyleN)Ú	enumeraterX  r%   r>   r‘  rz   )rK   rz  rH  rj   rk   r*   Ú
conn_stylerß  s           rL   Ú2test_draw_networkx_edges_multiedge_connectionstyler…  j  sá   € õ Ð?Ð?Ð?Ñ@Ô@ð 1ð 1‰	ˆ‰6ˆAˆqØ	�
Š
�1�a¥ a¨!¡e¨Q¡¤ˆ
Ñ0Ô0Ð0Ð0Ø
 Ð
 ˜aÐ
 Ñ
 Ô
 €Cð 	Ø	˜Ð(Ø8Ð8Ð8ðð /ð /ˆ
õ
 	Ô˜q #°zÐBÑBÔBÐBÝÔ'¨¨3À
ÐKÑKÔKˆÝ�6‰{Œ{Ð.Ò.Ð.Ð.Ð.Ð.ð/ð /rN   c           	      ó˜  — t          g d¢¦  «        D ]1\  }\  }}|                      ||t          |dz  d¦  «        ¬¦  «         Œ2d„ | D ¦   «         }t          j        | |g d¢¬¦  «        }ddd	gg d¢fD ]W}t          j        | ||¬¦  «        }t          |¦  «        |k    sJ ‚|                     ¦   «         D ]}	|	j        j	        d
k    sJ ‚ŒŒXdS )zXDraws labels correctly for 3 types of graphs and checks for valid length and class namesr|  rY   ra   r}  c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   zLtest_draw_networkx_edge_labels_multiedge_connectionstyle.<locals>.<dictcomp>†  rƒ  rN   )r  r  r  r�  r  r€  ÚCurvedArrowTextN)
rƒ  rX  r%   r>   r‘  rˆ  rz   ÚvaluesÚ	__class__Ú__name__)
rK   rz  rH  rj   rk   r*   rß  r„  Ú
text_itemsÚtis
             rL   Ú8test_draw_networkx_edge_labels_multiedge_connectionstylerŽ  ~  s%  € õ Ð?Ð?Ð?Ñ@Ô@ð 1ð 1‰	ˆ‰6ˆAˆqØ	�
Š
�1�a¥ a¨!¡e¨Q¡¤ˆ
Ñ0Ô0Ð0Ð0Ø
 Ð
 ˜aÐ
 Ñ
 Ô
 €CåÔ#Ø	ˆ3Ð PÐ PÐ Pðñ ô €Fð 	Ø	˜Ð(Ø8Ð8Ð8ðð >ð >ˆ
õ
 Ô1°!°SÈ*ÐUÑUÔUˆ
Ý�:‰ŒÐ"2Ò2Ð2Ð2Ð2Ø×#Ò#Ñ%Ô%ð 	>ð 	>ˆBØ”<Ô(Ð,=Ò=Ð=Ð=Ð=Ð=ð	>ð>ð >rN   c                  ó,  — t          j        ¦   «         } |                      ddd¬¦  «         |                      ddd¬¦  «         t          j        | d¦  «        }d„ | D ¦   «         }t          j        | ||dd	g¬
¦  «        }t          |¦  «        dk    sJ ‚d S )Nr   rO   rm   r}  rþ   r   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z;test_draw_networkx_edge_label_multiedge.<locals>.<dictcomp>›  rƒ  rN   r  r€  ©r†  r‚  ra   )r>   r%  rX  Úget_edge_attributesrˆ  rz   )rK   r†  r*   rŒ  s       rL   Ú'test_draw_networkx_edge_label_multiedger“  –  s©   € Ý
Œ‰Œ€AØ‡J‚Jˆq�!˜B€JÑÔÐØ‡J‚Jˆq�!˜B€JÑÔÐÝÔ(¨¨HÑ5Ô5€KØ
 Ð
 ˜aÐ
 Ñ
 Ô
 €CÝÔ-Ø	ØØØ'¨Ð8ð	ñ ô €Jõ ˆz‰?Œ?˜aÒÐÐÐÐÐrN   c                  óŠ   — t          j        d¦  «        } d„ | j        D ¦   «         }t          j        | |i ¬¦  «        i k    sJ ‚dS )zORegression test for draw_networkx_edge_labels with empty dict. See
    gh-5372.rY   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z<test_draw_networkx_edge_label_empty_dict.<locals>.<dictcomp>©  ra  rN   r…  N)r>   r?   rZ   rˆ  rD  s     rL   Ú(test_draw_networkx_edge_label_empty_dictr–  ¥  sQ   € õ 	Œ�aÑÔ€AØ
&Ð
&˜aœgÐ
&Ñ
&Ô
&€CÝÔ'¨¨3¸BÐ?Ñ?Ô?À2ÒEÐEÐEÐEÐEÐErN   c                 óR  — | \  }}g d¢}g d¢}t          j        |¦  «        }d„ |j        D ¦   «         }t          j        |||||¬¦  «         t	          |j        ¦  «        dk    sJ ‚t                               |dd…         ¦  «        t                               dd	g¦  «        z   }t          |j        |dd…         |¦  «        D ]c\  }}	}
| 	                    ¦   «          
                    |
¦  «        sJ ‚t          j                             |                     ¦   «         |	¦  «        sJ ‚ŒddS )
ztWhen an edgelist is supplied along with a sequence of colors, check that
    the self-loops have the correct colors.)r3  r£   rŸ  rµ   r¸  r¶   )ÚpinkÚcyanr€   r9   r‰   Úgreenc                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   zGtest_draw_networkx_edges_undirected_selfloop_colors.<locals>.<dictcomp>¶  ra  rN   )r§   rŽ  r#   rY   éýÿÿÿNr   r  )r>   rã  rZ   r‘  rz   r‘   rb   rA  r·   r­   Úcontains_pointrE   rF   rG   r–  )ra  rb  r§   rŽ  Úedge_colorsrK   r*   Ú	sl_pointsr—  ÚclrÚslps              rL   Ú3test_draw_networkx_edges_undirected_selfloop_colorsr¢  ­  s5  € ð �G€Cˆà?Ð?Ð?€HØCÐCÐC€Kå
Œ�ÑÔ€AØ
&Ð
&˜aœgÐ
&Ñ
&Ô
&€CÝÔ˜1˜c b°8ÈÐTÑTÔTÐTõ ˆrŒz‰?Œ?˜aÒÐÐÐõ
 —’˜ " # #œÑ'Ô'­"¯(ª(°A°s°8Ñ*<Ô*<Ñ<€Iõ ˜RœZ¨°R°S°SÔ)9¸9ÑEÔEð ?ð ?‰ˆˆS�#Ø�|Š|‰~Œ~×,Ò,¨SÑ1Ô1Ð1Ð1Ð1ÝŒz×$Ò$ S×%6Ò%6Ñ%8Ô%8¸#Ñ>Ô>Ð>Ð>Ð>Ð>ð?ð ?rN   Úfap_only_kwargrþ   r‚  r€  rî  rï  c                 ó  — t          j        d¦  «        }d„ |D ¦   «         }|\  }}t          |                      ¦   «         ¦  «        d         }t	          j        t          d|› d�¬¦  «        5  t          j        ||fd|i| ¤Ž ddd¦  «         n# 1 swxY w Y   t          j	        ¦   «         5  t          j
        d	¦  «         t          j        d
t          ¬¦  «         t          j        ||f|ddœ| ¤Ž ddd¦  «         dS # 1 swxY w Y   dS )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.rY   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   zEtest_user_warnings_for_unused_edge_drawing_kwargs.<locals>.<dictcomp>×  rƒ  rN   r   z

The z# keyword argument is not applicabler*  r§   NÚerrorÚignore)ÚcategoryT)r§   rß  )r>   r?   rî   r  r,  ÚwarnsÚUserWarningr‘  ÚwarningsÚcatch_warningsÚsimplefilterÚfilterwarningsÚDeprecationWarning)r£  ra  rK   r*   rb  r§   Ú
kwarg_names          rL   Ú1test_user_warnings_for_unused_edge_drawing_kwargsr±  È  sÒ  € õ 	Œ�aÑÔ€AØ
 Ð
 ˜aÐ
 Ñ
 Ô
 €CØ�G€Cˆõ �n×)Ò)Ñ+Ô+Ñ,Ô,¨QÔ/€JÝ	ŒÝÐU jÐUÐUÐUð
ñ 
ô 
ð @ð @õ 	Ô˜q #Ð?Ð?¨"Ð?°Ð?Ð?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ 
Ô	 Ñ	"Ô	"ð Mð MåÔ˜gÑ&Ô&Ð&ÝÔ Õ3EÐFÑFÔFÐFÝ
Ô˜q #ÐL¨"°TÐLÐL¸^ÐLÐLÐLð	Mð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð Ms%   Á,BÂBÂBÂ,AC?Ã?DÄDÚdraw_fnc                 óÖ   — |\  }}t          j        d¦  «        }t          j        d¬¦  «        5 } | ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          |¦  «        dk    sJ ‚d S )Nrè   T)Úrecordrù  r   )r>   Úcycle_graphr«  r¬  rz   )r²  ra  rb  r§   rK   Úws         rL   Ú*test_no_warning_on_default_draw_arrowstyler·  é  s®   € ð �G€CˆÝ
Œ�qÑÔ€AÝ	Ô	 ¨Ð	-Ñ	-Ô	-ð °Øˆ��bÐÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åˆq‰6Œ6�QŠ;ˆ;ˆ;ˆ;ˆ;ˆ;s   ¯A	Á	AÁArN  Úmethodc                 óè   — t          j        d¦  «        }d„ |j        D ¦   «         }|\  }} | ||||¬¦  «         |j        |j        fD ])}t          |                     ¦   «         ¦  «        |k    sJ ‚Œ*d S )NrY   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z#test_hide_ticks.<locals>.<dictcomp>   ra  rN   )r*   r§   rN  )r>   r?   rZ   rO  rP  rQ  rR  )r¸  rN  ra  rK   r*   rm  r§   rS  s           rL   Útest_hide_ticksr»  ó  s”   € õ 	Œ�aÑÔ€AØ
&Ð
&˜aœgÐ
&Ñ
&Ô
&€CØ�E€A€rØ
€Fˆ1�#˜"¨Ð4Ñ4Ô4Ð4Ø”˜2œ8Ð$ð 9ð 9ˆÝ�D×'Ò'Ñ)Ô)Ñ*Ô*¨jÒ8Ð8Ð8Ð8Ð8ð9ð 9rN   )ÚangleÚangle3Úarczarc3,rad=0.0zbar,fraction=0.1c                 óö  — | \  }}d}t          j        |g¦  «        }d„ |D ¦   «         }|                     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    ¦   «         ‚dS |d
k    r||         j        |
k     sJ ‚dS dS )z†
    Check that FancyArrowPatches with all `connectionstyle`s are supported
    in edge label rendering. See gh-7735 and gh-8106.
    r¢   c                 ó   — i | ]}||d f“ŒS r  rT   rU   s     rL   rX   z8test_edge_label_all_connectionstyles.<locals>.<dictcomp>  rƒ  rN   ú,r   r„  r‘  rO   ra   >   r¾  r1   r,  N)r>   r8  Úsplitrˆ  r
  Úyr,  Úapprox)ra  ró   rb  r§   r„  rK   r*   Únamer	  ÚhmidÚvmids              rL   Ú$test_edge_label_all_connectionstylesrÈ    s   € ð �G€CˆØ€DÝ
Œ
�D�6ÑÔ€AØ
 Ð
 ˜aÐ
 Ñ
 Ô
 €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ÐL˜v dœ|œ~µ´ÀÀd¸|Ñ1LÔ1LÒLÑLÔLˆ~ÐLÐLØ	�ŠˆØ�dŒ|Œ~ Ò$Ð$Ð$Ð$ð 
ˆØ$Ð$rN   Ú	label_posgš™™™™™¹¿gš™™™™™ñ?c                 ó   — | \  }}d}t          j        |g¦  «        }d„ |D ¦   «         }t          j        |||di|d¬¦  «        }||         j        s-J ||         j        t          j        ||f¦  «        k    ¦   «         ‚dS )zH
    Check that label positions can be extrapolated outside [0, 1].
    r¢   c                 ó   — i | ]}|||f“ŒS rT   rT   rU   s     rL   rX   z-test_edge_label_label_pos.<locals>.<dictcomp>)  rƒ  rN   r„  r¼  )r†  rÉ  r‚  N)r>   r8  rˆ  r
  rÃ  r,  rÄ  )ra  rÉ  rb  r§   r„  rK   r*   Úlbls           rL   Útest_edge_label_label_posrÍ  !  s˜   € ð
 �G€CˆØ€DÝ
Œ
�D�6ÑÔ€AØ
 Ð
 ˜aÐ
 Ñ
 Ô
 €CÝ
Ô
&Ø	ˆ3˜T 6˜N°iÐQXðñ ô €Cð ˆtŒ9Œ;ÐLÐL˜˜Dœ	œ¥v¤}°iÀÐ5KÑ'LÔ'LÒLÑLÔLˆ;ÐLÐLrN   )uÚ__doc__r¥  Úosr«  r,  Únetworkxr>   ri  rE   rb   ÚuserA   ÚrcParamsÚbarbell_graphrj  ÚdefaultsÚmarkÚparametrizerM   r]   re   r~   rã  r8  rž   r¨   rÂ   rÎ   rß   rç   rñ   rü   r
  r  r)  r/  r:  r>  rJ  rT  r\  r_  Úfixturera  Údraw_circularrh  Údraw_planarÚdraw_randomÚdraw_spectralr~  rt  Údraw_forceatlas2ro  ru  ry  r€  r‰  rŒ  r”  r˜  r   r©  r«  r±  r³  r¶  r¼  r¿  rÂ  rË  rÐ  r×  rÛ  rç  r÷  rû  rý  r   r  r  r  r  r(  r/  r4  r:  r?  rB  rE  rK  rR  r[  r^  rb  ri  rm  r‡  r  rt  rw  ry  r%  r  r…  rŽ  r“  r–  r¢  r±  r·  rˆ  r‘  rö  rä  r»  rÈ  rÍ  rT   rN   rL   ú<module>rÝ     s÷  ðØ 2Ð 2à Ð Ð Ð Ø 	€	€	€	Ø €€€à €€€à Ð Ð Ð à€fÔ˜,Ñ'Ô'€Ø€VÔ˜Ñ!Ô!€Ø ‡‚ˆ�„€Ø€fÔÐ-Ñ.Ô.€Ø#€„ˆ]Ñ ð ˆ"Ô
˜1˜aÑ
 Ô
 €ð,Ø�ð,à�Dð,ð �)ð,ð �ð	,ð
 ØØØØØØ Ø ØØØðð ð,ð" �#ð#,ð$ �#ð%,ð& ˜ð',ð( ˜ð),ð* �Dð+,ð, �#ð-,ð. �)ð/,ð0 ØØØØØØ$¨OÀ?ÐSÐ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Ô2ð/ð /ñ 3Ô2ð/ðd „×Ò˜ 5¨$ -Ñ0Ô0ðð ñ 1Ô0ððð ð ð&Pð Pð Pð „ðð ñ „ðð „×ÒØà
ÔØ
ÔØ
ŒØ
ŒØ
ÔØ
ŒØ
ŒØ
Ôð	ñô ð&ð &ñô ð&ð&ð &ð &ð&ð &ð &ðð ð ð&ð &ð &ð*ð *ð *ð
 „×ÒØàØØ
ˆ�ˆØ#Ø
Ð	˜HÐ%ØØ
ˆ˜Ð ØØ
ˆ�fÐð
ñô ð „×Ò˜ d¨V¨HÐ%5Ñ6Ô6ðDð Dñ 7Ô6ñô ðDð „×ÒØàØØ
ˆ�ˆØ#Ø
Ð	˜HÐ%ØØ
ˆ˜Ð ØØ
ˆ�fÐð
ñô ð „×Ò˜ d¨V¨HÐ%5Ñ6Ô6ð	Dð 	Dñ 7Ô6ñô ð	Dð6Fð 6Fð 6FðrDð Dð DðDð Dð Dðð ð ðð ð ð „×Ò˜¨¬°"´*Ð'=Ñ>Ô>ð,ð ,ñ ?Ô>ð,ð „×ÒØàØ
ˆˆaˆðñô ð3ð 3ñô ð3ð „×ÒØàØ
ˆˆaˆðñô ð/ð /ñô ð/ð „×ÒØà Ð Ð ØØ	�Ððñô ð5ð 5ñô ð5ð=ð =ð =ð 	.ð 	.ð 	.ð „×ÒØðñô ð,ð ,ñô ð,ð „×ÒØà	ˆ
Ø	ˆØ	ˆØÐÐØ	ˆsˆØÐÐðñ
ô 
ð
,ð 
,ñ
ô 
ð
,ð5ð 5ð 5ð49Fð 9Fð 9FðzNð Nð Nðð ð ð
Kð Kð Kð,Eð Eð Eð6ð 6ð 6ð$ð ð ð6ð 6ð 6ð.8ð 8ð 8ð&$ð $ð $ð
(ð (ð (ð „×Ò˜ r¨<¨<¨<Ð&8Ñ9Ô9ð	4ð 	4ñ :Ô9ð	4ð „×Ò˜¨Ð/EÐ/EÐ/EÐ'FÑGÔGðIð Iñ HÔGðIð(Cð Cð Cð
'ð 'ð 'ð(ð (ð (ð: „×Ò˜ zÑ2Ô2ð)0ð )0ñ 3Ô2ð)0ð\ „×Ò˜ zÑ2Ô2ð)ð )ñ 3Ô2ð)ðX.ð .ð .ð.ð .ð .ð",ð ,ð ,ð=ð =ð =ðD „×Ò˜¨"¬'°2Ô3CÐ)DÑEÔEðð ñ FÔEðð „×Ò˜¨"¬'°2Ô3CÐ)DÑEÔEð	ð 	ñ FÔEð	ðð ð ð „×ÒØØ€b„j�l„l�AÐ˜˜œ™œ¨!Ð,¨¨r¬Ñ/@Ô/@À!Ð.DÐEñô ð/ð /ñ	ô ð/ð  „×ÒØØ€b„j�l„l�AÐ˜˜œ™œ¨!Ð,¨¨r¬Ñ/@Ô/@À!Ð.DÐEñô ð>ð >ñ	ô ð>ð( ð  ð  ðFð Fð Fð?ð ?ð ?ð6 „×ÒØà	�sÐØ	�bÐØ	˜NÐ+Ø	˜bÐ!Ø	˜bÐ!ðñ	ô 	ðMð Mñ	ô 	ðMð. „×Ò˜ R¤W¨bÔ.>Ð$?Ñ@Ô@ðð ñ AÔ@ðð „×Ò˜¨¨t }Ñ5Ô5Ø„×ÒØà
ÔØ
Ô$Ø
ÔØ
ÔØ
Ôðñ	ô 	ð9ð 9ñ	ô 	ñ 6Ô5ð9ð „×ÒØÐKÐKÐKñô ð%ð %ñô ð%ð. „×Ò˜ t¨S kÑ2Ô2ðMð Mñ 3Ô2ðMð Mð MrN   