Ë
    D^(hQŒ  ã                   óŽ
  — d Z ddlZddlZddlZddlZ ej
                  d«      Z ej
                  d«      Zej                  d«        ej
                  d«      Z	de	j                  d<   ddlZ ej                  d	d
«      Zd„ Zd„ Zd„ Zd„ Zej&                  j)                  ddddgdfddgdfddgdfddgdff	«      ej&                  j)                  dddgf«      d„ «       «       Zej&                  j)                  ddddgdfddgdfddgdfddgdff	«      ej&                  j)                  dddgf«      d „ «       «       Zd!„ Zd"„ Zd#„ Zd$„ Zd%„ Zej&                  j)                  d&ej8                  ej:                  f«      d'„ «       Zej&                  j)                  d(d)d*gd*ff«      d+„ «       Zej&                  j)                  d(d)d*gd*ff«      d,„ «       Z ej&                  j)                  dg d-¢ddd.gf«      d/„ «       Z!d0„ Z"d1„ Z#ej&                  j)                  d2d3«      d4„ «       Z$ej&                  j)                  d5d6gd7gd8gg d9¢d7d:gg d;¢f«      d<„ «       Z%d=„ Z&d>„ Z'ej&                  jP                  d?„ «       Z)d@„ Z*dA„ Z+dB„ Z,dC„ Z-dD„ Z.dE„ Z/dF„ Z0dG„ Z1dH„ Z2dI„ Z3ej&                  j)                  dJdKg dL¢f«      dM„ «       Z4ej&                  j)                  dNdOg dP¢f«      dQ„ «       Z5dR„ Z6dS„ Z7ej&                  j)                  dTdU«      dV„ «       Z8ej&                  j)                  dTdU«      dW„ «       Z9dX„ Z:dY„ Z;dZ„ Z<d[„ Z=ej&                  j)                  d\ej|                  ej~                  f«      d]„ «       Z@ej&                  j)                  d\ej|                  ej~                  f«      d^„ «       ZAd_„ ZBej&                  j)                  d` ej:                  «       dag ej†                  «       d	g ejˆ                  «       d	gf«      db„ «       ZEej&                  j)                  d` ej:                  «       dag ej†                  «       d	g ejˆ                  «       d	gf«      dc„ «       ZFdd„ ZGde„ ZHdf„ ZIej&                  j)                  dgdNd:idJdhididjidkdlidmdlif«      dn„ «       ZJej&                  j)                  doej|                  ej–                  f«      dp„ «       ZLej&                  j)                  dqddrg«      ej&                  j)                  dsej~                  ejš                  ejœ                  ejž                  ej                   g«      dt„ «       «       ZQy)uz,Unit tests for matplotlib drawing functions.é    NÚ
matplotlibÚnumpyÚPSzmatplotlib.pyplotFztext.usetexé   é   c                  ó(  — 	 t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  g} ddddœg}t        j                  | |«      D ]'  \  }} |t        fi |¤Ž t        j                  d«       Œ) 	 	 t        j                  d«       y # t        $ r Y Œ"w xY w# t         $ r Y y w xY w# 	 t        j                  d«       w # t         $ r Y w w xY wxY w)NÚblackéd   é   )Ú
node_colorÚ	node_sizeÚwidthútest.ps)ÚnxÚdraw_circularÚdraw_kamada_kawaiÚdraw_planarÚdraw_randomÚdraw_spectralÚdraw_springÚ
draw_shellÚ	itertoolsÚproductÚbarbellÚpltÚsavefigÚModuleNotFoundErrorÚosÚunlinkÚOSError)Ú	functionsÚoptionsÚfunctionÚoptions       ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/drawing/tests/test_pylab.pyÚ	test_drawr&      së   € ðä×ÑÜ× Ñ Ü�N‰NÜ�N‰NÜ×ÑÜ�N‰NÜ�M‰Mð
ˆ	ð #*¸ÀaÑHÐIˆÜ )× 1Ñ 1°)¸WÓ Eò 	#ÑˆH�fÙ”WÑ' Ò'Ü�K‰K˜	Õ"ñ	#ð	Ü�I‰I�iÕ øô	 ò Ùðûô
 ò 	Ùð	ûð	Ü�I‰I�iÕ øÜò 	Ùð	ýs`   ‚B2C Â4C* Â6C Ã	CÃC* ÃCÃC* Ã	C'Ã&C'Ã*DÃ,DÄDÄ	DÄDÄDÄDc                  ó~  — 	 t        t        d«      «      t        t        dd«      «      t        t        dd«      «      g} t        j                  t        | ¬«       t
        j                  d«       	 t        j                  d«       y # t        $ r Y y w xY w# 	 t        j                  d«       w # t        $ r Y w w xY wxY w)Nr   é
   é   ©Únlistr   )
ÚlistÚranger   r   r   r   r   r   r   r    r*   s    r%   Útest_draw_shell_nlistr.   -   s‘   € ðÜ”e˜A“h“¤¤e¨A¨r£lÓ!3´T¼%ÀÀB»-Ó5HÐIˆÜ
�‰”g UÕ+Ü�‰�IÔð	Ü�I‰I�iÕ øÜò 	Ùð	ûð	Ü�I‰I�iÕ øÜò 	Ùð	ýsB   ‚A-B Á0B Â	BÂBÂB<ÂB-Â,B<Â-	B9Â6B<Â8B9Â9B<c                  óª   — t        t        j                  «       «      } t        j                  t        | dt
        j                  j                  d¬«       y )Nr   T)Ú
edge_colorr   Ú	edge_cmapÚwith_labels)r-   r   Únumber_of_edgesr   r   r   ÚcmÚBlues)Úcolorss    r%   Útest_edge_colormapr7   9   s5   € Ü”7×*Ñ*Ó,Ó-€FÜ‡N�NÜ˜F¨!´s·v±v·|±|ÐQUöó    c                  óR   — t        j                  t        j                  «       «       y ©N)r   r   r   Úto_directed© r8   r%   Útest_arrowsr=   A   s   € Ü‡N�N”7×&Ñ&Ó(Õ)r8   )r0   Úexpected)Nr	   )ÚrÚredr?   r@   )©ç      ð?rB   g        ÚyellowrA   rC   )©r   é   r   rE   ÚlimerD   rF   )ú#0000ffÚbluerG   rH   Úedgelist©r   rE   c                 óæ   — t        j                  d«      }t        j                  |t        j                  |«      || ¬«      }t        j
                  j                  |j                  «       |«      sJ ‚y)z`Tests ways of specifying all edges have a single color for edges
    drawn with a LineCollectionr   ©ÚposrI   r0   N)r   Ú
path_graphÚdraw_networkx_edgesÚrandom_layoutÚmplr6   Ú
same_colorÚ	get_color)r0   r>   rI   ÚGÚdrawn_edgess        r%   Ú!test_single_edge_color_undirectedrV   F   s[   € ô& 	�‰�aÓ€AÜ×(Ñ(Ø	Œr×Ñ Ó"¨XÀ*ô€Kô �:‰:× Ñ  ×!6Ñ!6Ó!8¸(ÔCÐCÑCr8   c                 ó  — t        j                  dt         j                  ¬«      }t        j                  |t        j                  |«      || ¬«      }|D ]2  }t
        j                  j                  |j                  «       |«      rŒ2J ‚ y)zaTests ways of specifying all edges have a single color for edges drawn
    with FancyArrowPatchesr   ©Úcreate_usingrL   N)	r   rN   ÚDiGraphrO   rP   rQ   r6   rR   Úget_edgecolor)r0   r>   rI   rT   rU   Úfaps         r%   Útest_single_edge_color_directedr]   `   sr   € ô& 	�‰�a¤b§j¡jÔ1€AÜ×(Ñ(Ø	Œr×Ñ Ó"¨XÀ*ô€Kð ò DˆÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸(ÕCÐCÐCñDr8   c                  ó  — t        j                  dt         j                  ¬«      } t        t	        | «      «      D �ci c]  }|||f“Œ	 }}dD ]£  }t        j
                  | ||¬«      }|D ]2  }t        j                  j                  |j                  «       |«      rŒ2J ‚ t        j
                  | |ddg|¬«      }|D ]2  }t        j                  j                  |j                  «       |«      rŒ2J ‚ Œ¥ t        j
                  | |g d¢d	¬«      }|D ]2  }t        j                  j                  |j                  «       d
«      rŒ2J ‚ t        j
                  | |g d¢d¬«      }|D ]2  }t        j                  j                  |j                  «       d
«      rŒ2J ‚ t        j
                  | |g d¢d¬«      }t        j                  j                  |d   j                  «       |d   j                  «       «      sJ ‚|D ]2  }t        j                  j                  |j                  «       d
«      sŒ2J ‚ t        j
                  | |g d¢d	¬«      }t        j                  j                  |d   j                  «       |d   j                  «       «      sJ ‚t        j                  j                  |d   j                  «       |d   j                  «       «      sJ ‚|D ]2  }t        j                  j                  |j                  «       d
«      sŒ2J ‚ yc c}w )z†If edge_color is a sequence with the same length as edgelist, then each
    value in edge_color is mapped onto each edge via colormap.r   rX   )©r   r   rE   ©r   r   rE   rE   ©r0   rJ   ©rE   é   )rI   r0   ©rJ   rb   ©rc   r   r`   rH   )rJ   rb   re   )r   r   r_   r   rE   rc   r   N)
r   rN   rZ   r-   ÚlenrO   rQ   r6   rR   r[   )rT   ÚnrM   ÚecrU   r\   s         r%   Ú$test_edge_color_tuple_interpretationri   {   sñ  € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ð (ò 
Bˆä×,Ñ,¨Q°ÀÔCˆØò 	BˆCÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸bÕAÐAÐAð	Bô ×,Ñ,Øˆs˜f fÐ-¸"ô
ˆð ò 	BˆCÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸bÕAÐAÐAñ	Bð
Bô ×(Ñ(Ø	ˆ3Ò1¸lô€Kð ò BˆÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸&ÕAÐAÐAðBô ×(Ñ(Ø	ˆ3Ò9Àiô€Kð ò BˆÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸&ÕAÐAÐAðBô ×(Ñ(Ø	ˆ3Ò1¸iô€Kô �:‰:× Ñ Ø�A‰×$Ñ$Ó&¨°A©×(DÑ(DÓ(Fôð ð ð ò FˆÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸fÕEÐEÐEðFô ×(Ñ(Ø	ˆ3Ò9Àlô€Kô �:‰:× Ñ Ø�A‰×$Ñ$Ó&¨°A©×(DÑ(DÓ(Fôð ð ô �:‰:× Ñ Ø�A‰×$Ñ$Ó&¨°A©×(DÑ(DÓ(Fôð ð ð ò FˆÜ—:‘:×(Ñ(¨×):Ñ):Ó)<¸fÕEÐEÐEñFùòc -s   ¼Lc                  ó@  — t         j                  «       } t        j                  t         «      }d}t        j                  | ||¬«      }t        |t        j                  |«      «      D ]5  \  }}t        j                  j                  |j                  «       |«      rŒ5J ‚ y)zZTest that the edge colors are cycled when there are fewer specified
    colors than edges.©r?   ÚgÚbra   N)r   r;   r   rP   rO   Úzipr   ÚcyclerQ   r6   rR   r[   ©rT   rM   Ú
edgecolorsrU   r\   r>   s         r%   Ú.test_fewer_edge_colors_than_num_edges_directedrr   ´   sƒ   € ô 	×ÑÓ€AÜ
×
Ñ
œ7Ó
#€CØ €JÜ×(Ñ(¨¨C¸JÔG€KÜ˜[¬)¯/©/¸*Ó*EÓFò D‰ˆˆXÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸(ÕCÐCÐCñDr8   c                  óB  — t        j                  dt         j                  ¬«      } t        j                  t        «      }d}t        j
                  | ||¬«      }t        ||dd «      D ]5  \  }}t        j                  j                  |j                  «       |«      rŒ5J ‚ y)z\Test that extra edge colors are ignored when there are more specified
    colors than edges.r   rX   )r?   rl   rm   Úcra   Néÿÿÿÿ)r   rN   rZ   rP   r   rO   rn   rQ   r6   rR   r[   rp   s         r%   Ú-test_more_edge_colors_than_num_edges_directedrv   ¿   s†   € ô 	�‰�a¤b§j¡jÔ1€AÜ
×
Ñ
œ7Ó
#€CØ%€JÜ×(Ñ(¨¨C¸JÔG€KÜ˜[¨*°S°b¨/Ó:ò D‰ˆˆXÜ�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸(ÕCÐCÐCñDr8   c                  óH  — t        j                  t        t        j                  t        «      ddgdd¬«      } | j	                  «       j                  «       }t        | j                  «       «      dk(  sJ ‚t        j                  j                  |d d d«      sJ ‚|d   dk(  sJ ‚y ©NrJ   rb   Úpurpleçš™™™™™É?)rM   rI   r0   Úalpharc   ru   )r   rO   r   rP   rS   Úsqueezerf   Ú	get_pathsrQ   r6   rR   )Úedge_collectionrh   s     r%   Ú3test_edge_color_string_with_global_alpha_undirectedr   Ê   s–   € Ü×,Ñ,ÜÜ×ÑœWÓ%Ø˜&Ð!ØØô€Oð 
×	"Ñ	"Ó	$×	,Ñ	,Ó	.€BÜˆ×(Ñ(Ó*Ó+¨qÒ0Ð0Ð0Ü�:‰:× Ñ   C R ¨(Ô3Ð3Ð3Øˆb‰6�SŠ=Ð‰=r8   c                  ó:  — t        j                  t        j                  «       t        j                  t        «      ddgdd¬«      } t        | «      dk(  sJ ‚| D ]A  }|j                  «       }t        j                  j                  |d d d«      sJ ‚|d   dk(  rŒAJ ‚ y rx   )
r   rO   r   r;   rP   rf   r[   rQ   r6   rR   )rU   r\   rh   s      r%   Ú1test_edge_color_string_with_global_alpha_directedr�   Ø   sœ   € Ü×(Ñ(Ü×ÑÓÜ×ÑœWÓ%Ø˜&Ð!ØØô€Kô ˆ{Ó˜qÒ Ð Ð Øò ˆØ×ÑÓ ˆÜ�z‰z×$Ñ$ R¨¨ W¨hÔ7Ð7Ð7Ø�"‰v˜‹}Ðˆ}ñr8   Ú
graph_typec                 ó  — t        j                  d| ¬«      }t        t        |«      «      D �ci c]  }|||f“Œ	 }}t        j                  ||«      }t        |t        «      r|d   }|j                  «       dk(  sJ ‚yc c}w )z^Test the default linewidth for edges drawn either via LineCollection or
    FancyArrowPatches.rc   rX   r   rE   N)r   rN   r-   rf   rO   Ú
isinstancer,   Úget_linewidth)r‚   rT   rg   rM   rU   s        r%   Útest_edge_width_default_valuer†   ç   sx   € ô 	�‰�a jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,Ü×(Ñ(¨¨CÓ0€KÜ�+œtÔ$Ø! !‘nˆØ×$Ñ$Ó&¨!Ò+Ð+Ñ+ùò	 -s   ®A=)Ú	edgewidthr>   ©r   r   r   c                 ó  — t        j                  d«      }t        t        |«      «      D �ci c]  }|||f“Œ	 }}t        j                  ||| ¬«      }t        |j                  «       «      dk(  sJ ‚|j                  «       |k(  sJ ‚y c c}w )Nr   ©r   r   )r   rN   r-   rf   rO   r}   r…   )r‡   r>   rT   rg   rM   rU   s         r%   Ú'test_edge_width_single_value_undirectedr‹   ó   s�   € ô 	�‰�aÓ€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,Ü×(Ñ(¨¨C°yÔA€KÜˆ{×$Ñ$Ó&Ó'¨1Ò,Ð,Ð,Ø×$Ñ$Ó&¨(Ò2Ð2Ñ2ùò -s   ¬Bc                 ó(  — t        j                  dt         j                  ¬«      }t        t	        |«      «      D �ci c]  }|||f“Œ	 }}t        j
                  ||| ¬«      }t	        |«      dk(  sJ ‚|D ]  }|j                  «       |k(  rŒJ ‚ y c c}w )Nr   rX   rŠ   r   )r   rN   rZ   r-   rf   rO   r…   )r‡   r>   rT   rg   rM   rU   r\   s          r%   Ú%test_edge_width_single_value_directedr�     s�   € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,Ü×(Ñ(¨¨C°yÔA€KÜˆ{Ó˜qÒ Ð Ð Øò /ˆØ× Ñ Ó" hÓ.Ð.Ð.ñ/ùò -ó   ¼Brd   rb   c                 ó  — t         j                  «       }t        j                  |«      }d}t        j                  ||| |¬«      }t        |t        j                  |«      «      D ]  \  }}|j                  «       |k(  rŒJ ‚ y )N)ç      à?ç       @g      (@)rI   r   )	r   r;   r   rP   rO   rn   r   ro   r…   )rI   rT   rM   ÚwidthsrU   r\   Úexpected_widths          r%   Útest_edge_width_sequencer”     sx   € ô 	×ÑÓ€AÜ
×
Ñ
˜1Ó
€CØ€FÜ×(Ñ(¨¨C¸(È&ÔQ€KÜ" ;´	·±ÀÓ0GÓHò 5Ñˆˆ^Ø× Ñ Ó" nÓ4Ð4Ð4ñ5r8   c                  ó°  — t        j                  dt         j                  ¬«      } t        j                  | «      }t        j                  | |ddg¬«      }|D �cg c]  }|j                  «       ‘Œ }}t        j                  | |ddgdd¬«      }|D �cg c]  }|j                  «       ‘Œ }}t        j                  j                  ||«      sJ ‚y	c c}w c c}w )
zyTest that edge_vmin and edge_vmax properly set the dynamic range of the
    color map when num edges == len(edge_colors).r   rX   r   rB   ra   rz   gš™™™™™é?)r0   Ú	edge_vminÚ	edge_vmaxN)	r   rN   rZ   rP   rO   r[   rQ   r6   rR   )rT   rM   rU   ÚeÚorig_colorsÚscaled_colorss         r%   Ú#test_edge_color_with_edge_vmin_vmaxr›   #  s¹   € ô 	�‰�a¤b§j¡jÔ1€AÜ
×
Ñ
˜1Ó
€Cä×(Ñ(¨¨C¸QÀ¸HÔE€KØ.9Ö:¨�1—?‘?Õ$Ð:€KÐ:ä×(Ñ(Ø	ˆ3˜C ˜:°Àô€Kð 1<Ö<¨1�Q—_‘_Õ&Ð<€MÐ<Ü�:‰:× Ñ  ¨mÔ<Ð<Ñ<ùò ;ùò
 =s   ÁCÂCc                  ó$  — t        j                  dt         j                  ¬«      } t        t	        | «      «      D �ci c]  }|||f“Œ	 }}t        j
                  | |«      }t	        |«      dk(  sJ ‚|D ]  }|j                  «       dk(  rŒJ ‚ yc c}w )z>Test default linestyle for edges drawn with FancyArrowPatches.r   rX   r   ÚsolidN©r   rN   rZ   r-   rf   rO   Úget_linestyle)rT   rg   rM   rU   r\   s        r%   Ú%test_directed_edges_linestyle_defaultr    3  s‹   € ä
�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ô ×(Ñ(¨¨CÓ0€KÜˆ{Ó˜qÒ Ð Ð Øò .ˆØ× Ñ Ó" gÓ-Ð-Ð-ñ.ùò -s   ¼BÚstyle)Údashedú--©rE   ©rE   rE   c                 ó(  — t        j                  dt         j                  ¬«      }t        t	        |«      «      D �ci c]  }|||f“Œ	 }}t        j
                  ||| ¬«      }t	        |«      dk(  sJ ‚|D ]  }|j                  «       | k(  rŒJ ‚ yc c}w )z¬Tests support for specifying linestyles with a single value to be applied to
    all edges in ``draw_networkx_edges`` for FancyArrowPatch outputs
    (e.g. directed edges).r   rX   ©r¡   r   Nrž   )r¡   rT   rg   rM   rU   r\   s         r%   Ú*test_directed_edges_linestyle_single_valuer¨   ?  s�   € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ä×(Ñ(¨¨C°uÔ=€KÜˆ{Ó˜qÒ Ð Ð Øò ,ˆØ× Ñ Ó" eÓ+Ð+Ð+ñ,ùò	 -rŽ   Ú	style_seqr¢   r£   r¤   )r£   ú-ú:rª   )r£   rª   r«   z-.c                 óh  — t        j                  dt         j                  ¬«      }t        t	        |«      «      D �ci c]  }|||f“Œ	 }}t        j
                  ||| ¬«      }t	        |«      dk(  sJ ‚t        |t        j                  | «      «      D ]  \  }}|j                  «       |k(  rŒJ ‚ yc c}w )zˆTests support for specifying linestyles with sequences in
    ``draw_networkx_edges`` for FancyArrowPatch outputs (e.g. directed edges).r   rX   r§   r   N)
r   rN   rZ   r-   rf   rO   rn   r   ro   rŸ   )r©   rT   rg   rM   rU   r\   r¡   s          r%   Ú&test_directed_edges_linestyle_sequencer­   U  s¡   € ô 	�‰�a¤b§j¡jÔ1€AÜ#¤C¨£F›mÖ
,˜ˆ1ˆq�!ˆf‰9Ð
,€CÐ
,ä×(Ñ(¨¨C°yÔA€KÜˆ{Ó˜qÒ Ð Ð Ü˜+¤y§¡°yÓ'AÓBò ,‰
ˆˆUØ× Ñ Ó" eÓ+Ð+Ð+ñ,ùò	 -s   ¼B/c                  ó  — ddl m} m} ddlm} t        j                  t
        j                  «      }t        j                  t
        j                  «      }t        j                  |«      }t        j                  |«      }t        j                  ||«      }t        ||«      sJ ‚t        j                  ||d¬«      }t        |t        «      sJ ‚t        |«      dkD  rt        |d   |«      sJ ‚t        j                  ||d¬«      }t        || «      sJ ‚t        j                  ||d ¬«      }t        || «      sJ ‚t        j                  ||d ¬«      }t        |t        «      sJ ‚t        |«      dkD  rt        |d   |«      sJ ‚y y )Nr   )ÚLineCollectionÚPathCollection)ÚFancyArrowPatchT©ÚarrowsF)Úmatplotlib.collectionsr¯   r°   Úmatplotlib.patchesr±   r   Úcubical_graphÚGraphrZ   Úspring_layoutÚdraw_networkx_nodesr„   rO   r,   rf   )	r¯   r°   r±   rT   ÚdGrM   ÚdposÚnodesÚedgess	            r%   Útest_return_typesr¾   m  sE  € ßEÝ2ä
×ÑœŸ™Ó"€AÜ	×	Ñ	œ"Ÿ*™*Ó	%€BÜ
×
Ñ
˜1Ó
€CÜ×Ñ˜BÓ€Dä×"Ñ" 1 cÓ*€EÜ�e˜^Ô,Ð,Ð,ä×"Ñ" 2 t°DÔ9€EÜ�eœTÔ"Ð"Ð"Ü
ˆ5ƒz�A‚~Ü˜% ™( OÔ4Ð4Ð4Ü×"Ñ" 2 t°EÔ:€EÜ�e˜^Ô,Ð,Ð,Ü×"Ñ" 1 d°4Ô8€EÜ�e˜^Ô,Ð,Ð,Ü×"Ñ" 2 s°4Ô8€EÜ�eœTÔ"Ð"Ð"Ü
ˆ5ƒz�A‚~Ü˜% ™( OÔ4Ð4Ñ4ð r8   c            
      ó"  — t        j                  «       } t        j                  | «      }t        j                  | |g d¢ddd¬«       t        j                  | |g d¢ddg d¢¬«       t        j                  | |d	d
¬«       t        j                  | |g d¢dd
d¬«       t        j                  | |g d¢dd
d¬«       t        j                  | |g d¢dd
ddd¬«       i }d|d<   d|d<   d|d<   d|d<   d|d<   d|d<   d|d<   d |d!<   t        d«      D �ci c]  }||dz  dk(  rd"nd“Œ }}t        j                  | ||d#¬$«       t        j                  | ||d#|¬%«       t        j                  | |d d&¬'«       t        j                  | |d(d)i¬*«       y c c}w )+N©r   rE   rc   r   r?   iô  ç      è?)Únodelistr   r   r{   )r   é   r   é   rm   )g      Ð?r�   rÁ   rB   rB   r�   )r   r{   )rJ   rb   re   )r   r   é   )rI   r   r{   r0   )©r   rÃ   )rÃ   r   )r   rÄ   )rÄ   r   T)rI   r³   Úmin_source_marginÚmin_target_marginr   r0   z$a$r   z$b$rE   z$c$rc   z$d$r   z$\alpha$r   z$\beta$rÃ   z$\gamma$r   z$\delta$rÄ   Úké   )Ú	font_size)rË   Ú
font_colorF)Úedge_labelsÚrotaterÆ   z4-5©rÍ   )r   r¶   r¸   r¹   rO   r-   Údraw_networkx_labelsÚdraw_networkx_edge_labels)rT   rM   Úlabelsrg   r6   s        r%   Útest_labels_and_colorsrÓ   ‡  s­  € Ü
×ÑÓ€AÜ
×
Ñ
˜1Ó
€Cä×ÑØ	ˆ3š°#ÀÈDõô ×ÑØ	ØÚØØÚ$õô ×Ñ˜1˜c¨°CÕ8Ü×ÑØ	ØÚ1ØØØõô ×ÑØ	ØÚ1ØØØõô ×ÑØ	ØÚ1ØØØØØõ	ð €FØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IØ€Fˆ1�IÜ5:¸1³XÖ>°ˆa˜˜A™ š
‘¨Ñ+Ð>€FÐ>Ü×Ñ˜A˜s F°bÕ9Ü×Ñ˜A˜s F°bÀVÕLÜ× Ñ   C°TÀ%ÕHÜ× Ñ   C°f¸e°_ÖEùò	 ?s   ÄFc                  ó€  — t        j                  «       } t        j                  «       \  }}ddddddœ}t        j                  | |dg d¢d	¬
«       t        j                  | |ddgd¬
«       t        j
                  | |dd¬«       |j                  d«       t        j                  «        t        j                  d«       |S )N©r   r   ©rE   r   rJ   r¥   )r�   r‘   )r   rE   rc   r   r   i¸  rÀ   ztab:blue)r   rÂ   r   iÐ  r   z
tab:oranger�   r   )r{   r   g)\�Âõ(¼?Úoff)	r   Úhouse_graphr   Úsubplotsr¹   rO   ÚmarginsÚtight_layoutÚaxis)rT   ÚfigÚaxrM   s       r%   Útest_house_with_colorsrß   Ä  s§   € ä
�‰Ó€Aä�l‰l‹n�G€CˆØ˜ F¨v¸*Ñ
E€Cô ×ÑØ	ØØÚØõô ×ÑØ	ˆ3˜$¨!¨¸õô ×Ñ˜1˜c¨°AÕ6à‡J�JˆtÔÜ×ÑÔÜ‡H�HˆU„OØ€Jr8   c                  óÎ   — t         j                  «       \  } }t        j                  t        |¬«       t        j
                  t        t        j                  t        «      |¬«       y )N©rÞ   )r   rÙ   r   Údrawr   rÑ   Úcircular_layout)rÝ   rÞ   s     r%   Ú	test_axesrä   Þ  s<   € Ü�l‰l‹n�G€CˆÜ‡G�GŒG˜ÕÜ× Ñ ¤¬"×*<Ñ*<¼WÓ*EÈ"ÖMr8   c                  óV   — t        j                  «       } t        j                  | «       y r:   )r   r·   râ   ©rT   s    r%   Útest_empty_graphrç   ä  s   € Ü
�‰‹
€AÜ‡G�GˆA…Jr8   c                  ór  — dd l } t        j                  ddg«      }t        j                  ddg«      }t        j                  |«      }t        t        j                  ||g ¬«      t        j                  j                  «      sJ ‚t        t        j                  ||g ¬«      t        j                  j                  «      sJ ‚t        j                  ||g d¬«      g k(  sJ ‚t        j                  ||g d¬«      g k(  sJ ‚t        j                  ||g d¬«      g k(  sJ ‚t        j                  ||g d¬«      g k(  sJ ‚y )Nr   rb   re   )rÂ   T)rI   r³   F)r´   r   r·   rZ   rã   r„   r¹   rQ   Úcollectionsr°   rO   )r   rT   ÚDGrM   s       r%   Ú#test_draw_empty_nodes_return_valuesrë   é  s  € ã!ä
�‰�&˜&Ð!Ó"€AÜ	�‰�V˜VÐ$Ó	%€BÜ
×
Ñ
˜QÓ
€CÜÜ
×Ñ˜q #°Ô3´S·_±_×5SÑ5Sôð ð ô Ü
×Ñ˜r 3°Ô4´c·o±o×6TÑ6Tôð ð ô ×!Ñ! ! S°2¸dÔCÀrÒIÐIÐIÜ×!Ñ! ! S°2¸eÔDÈÒJÐJÐJÜ×!Ñ! " c°B¸uÔEÈÒKÐKÐKÜ×!Ñ! " c°B¸tÔDÈÒJÐJÑJr8   c                  ó´   — t        j                  dt         j                  ¬«      } t        j                  | dg¬«       t        j                  | dgg d¢¬«       y )Nr   rX   )r   rE   r   ©rI   )r(   é   r   )rI   r   )r   rN   ÚMultiDiGraphÚdraw_networkxræ   s    r%   Útest_multigraph_edgelist_tuplesrñ   ÿ  s<   € ä
�‰�a¤b§o¡oÔ6€AÜ×Ñ�Q ) Õ-Ü×Ñ�Q ) ºÖDr8   c                  ó  — t        j                  t        «      } t        j	                  «       }|j                  d«       t        j                  t        | ddg¬«       t        t        j                  «      }t        |«      D �cg c]  }||z  ‘Œ	 }}t        |«      }|j                  d«       t        j                  t        | ||¬«       |j                  d«       |j                  d«       t        j                  t        | |¬«       y c c}w )	Néƒ   çš™™™™™¹?rz   )r{   é„   )r   r{   rE   é…   )r   rP   r   r   ÚfigureÚadd_subplotr¹   rf   r¼   r-   Úappend)rM   rÝ   Ú	num_nodesÚxr{   r6   s         r%   Útest_alpha_iterrü     sÁ   € Ü
×
Ñ
œ7Ó
#€CÜ
�*‰*‹,€Cà‡O�O�CÔÜ×Ñœ7 C°°S¨zÕ:ä”G—M‘MÓ"€IÜ$)¨)Ó$4Ö5˜qˆQ�‹]Ð5€EÐ5Ü�9Ó€FØ‡O�O�CÔÜ×Ñœ7 C°FÀ%ÕHà	‡L�L�„OØ‡O�O�CÔÜ×Ñœ7 C¨uÖ5ùò 6s   ÂD	c                  óV  — t        j                  d«      } t        j                  «       j	                  d«      }t        j
                  | g d¢|¬«       |j                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ }}t        |«      dk(  sJ ‚y c c}w )Nr   éo   )ÚoÚhÚsú^)Ú
node_shaperÞ   )r   rN   r   r÷   rø   râ   Úget_childrenr„   rQ   ré   r°   rf   )rT   rÞ   r  Úscatterss       r%   Útest_multiple_node_shapesr    s„   € Ü
�‰�aÓ€AÜ	�‰‹×	!Ñ	! #Ó	&€BÜ‡G�GˆAÒ.°2Õ6à—?‘?Ó$öØ¬
°1´c·o±o×6TÑ6TÕ(UŠð€Hð ô ˆx‹=˜AÒÐÑùòs   Á%)B&ÂB&c                  ó  — t        j                  «       } t        j                  «       j	                  d«      }t        j
                  | || j                  «       D �ci c]  }||dz  rdnd“Œ c}| j                  «       D �ci c]  }|t        |dz  dz   «      “Œ c}¬«       t        | j                  «       |j                  «       D �cg c]D  }t        |t        j                  j                  «      rt        |j                  «       «      dkD  r|‘ŒF c}«      D ]b  \  }}|dz  rd	nd
}t        j                   j#                  |j%                  «       |«      sJ ‚t        |dz  dz   «      |j'                  «       k(  rŒbJ ‚ y c c}w c c}w c c}w )Nrþ   rc   rÉ   r?   g""""""@rÃ   )rÞ   rÌ   rË   r   r	   r@   )r   Úkarate_club_graphr   r÷   rø   râ   r¼   Úintrn   r  r„   rQ   ÚtextÚTextrf   Úget_textr6   rR   rS   Úget_size)rT   rÞ   rg   Útr>   s        r%   Ú#test_individualized_font_attributesr  "  sE  € Ü
×ÑÓ€AÜ	�‰‹×	!Ñ	! #Ó	&€BÜ‡G�GØ	ØØ67·g±g³iÖ@°�A˜a !še‘s¨Ñ,Ò@Ø67·g±g³iÖ@°�1”c˜!˜w™-¨!Ñ+Ó,Ñ,Ò@õ	ô Ø	�‰‹	ð —_‘_Ó&ö	
àÜ˜!œSŸX™XŸ]™]Ô+´°A·J±J³LÓ0AÀAÒ0Eò ò	
óò 6‰ˆˆ1ð   !še‘7¨ˆä�z‰z×$Ñ$ Q§[¡[£]°HÔ=Ð=Ð=Ü�1˜‘= 1Ñ$Ó%¨¯©«Ó5Ð5Ð5ñ6ùò AùÚ@ùò	
s   ÁE=Â FÃA	F
c                  óˆ  — t        j                  «       } t        j                  «       j	                  d«      }| j                  «       D ��cg c]  \  }}||z   dz  dk(  rdnd‘Œ }}}| j                  «       D ��cg c]  \  }}d|dz  |dz  z   z  dz   ‘Œ }}}t        j                  | |d||¬«       |j                  «       D �cg c])  }t        |t        j                  j                  «      sŒ(|‘Œ+ }}t        | j                  «       |«      D ]¡  \  }}	|	j                  «       d|d   dz  |d	   dz  z   z  dz   k(  sJ ‚t        |«      dz  r$t        j                  j                  j                   n#t        j                  j                  j"                  }
t        |	j%                  «       |
«      rŒ¡J ‚ y c c}}w c c}}w c c}w )
Nrþ   rc   r   ú-|>ú-[r(   T)rÞ   r³   Ú
arrowstyleÚ	arrowsizerE   )r   r  r   r÷   rø   r½   râ   r  r„   rQ   Úpatchesr±   rn   Úget_mutation_scaleÚsumÚ
ArrowStyleÚBracketBÚCurveFilledBÚget_arrowstyle)rT   rÞ   ÚuÚvÚarrowstylesÚ
arrowsizesÚfr³   r˜   Úar>   s              r%   Ú#test_individualized_edge_attributesr"  9  s�  € Ü
×ÑÓ€AÜ	�‰‹×	!Ñ	! #Ó	&€BØCDÇ7Á7Ã9×M¹4¸1¸a˜Q ™U a™K¨1Ò,‘5°$Ñ6ÐM€KÑMØ89¿¹»	×B±°°1�"˜˜A™  A¡™Ñ&¨Ó+ÐB€JÑBÜ‡G�GˆA�"˜T¨kÀZÕPà—?‘?Ó$öØ¬
°1´c·k±k×6QÑ6QÕ(RŠð€Fð ô �A—G‘G“I˜vÓ&ò 8‰ˆˆ1Ø×#Ñ#Ó%¨¨q°©t°a©x¸!¸A¹$À¹(Ñ/BÑ)CÀbÑ)HÒHÐHÐHô �1‹v˜Šzô �K‰K×"Ñ"×+Ò+ä—‘×'Ñ'×4Ñ4ð 	ô
 ˜!×*Ñ*Ó,¨hÕ7Ð7Ð7ñ8ùó NùÛBùòs   ÁF3Á:F9Ã)F?Ã.F?c                  óš   — t        j                  t        d¬«      5  t        j                  t
        d¬«       d d d «       y # 1 sw Y   y xY w)NzReceived invalid argument©ÚmatchÚbar)Úfoo)ÚpytestÚraisesÚ
ValueErrorr   râ   r   r<   r8   r%   Útest_error_invalid_kwdsr+  L  s4   € Ü	�‰”zÐ)DÔ	Eñ $Ü
�‰”˜UÕ#÷$÷ $ñ $ús   œAÁA
c                  óÈ   — t        j                  g d¢«      } g d¢}t        j                  t        d¬«      5  t        j
                  | |¬«       d d d «       y # 1 sw Y   y xY w)N)rJ   ©r   rc   ©r   r   ©rE   r   )rE   rc   r   z1arrowsize should have the same length as edgelistr$  )r  )r   rZ   r(  r)  r*  râ   )rT   r  s     r%   Ú+test_draw_networkx_arrowsize_incorrect_sizer0  Q  sM   € Ü
�
‰
Ò3Ó4€AÚ€IÜ	�‰ÜÐMô
ñ (ô 	�‰�˜YÕ'÷(÷ (ñ (ús   ·AÁA!r  é   )r(   rî   r1  c                 óZ  — t        j                  g d¢«      }ddddœ}t        j                  ||| ¬«      }t        | t        «      rt        j                  | «      n| } t        || «      D ]@  \  }}t        |t        j                  j                  «      sJ ‚|j                  «       |k(  rŒ@J ‚ y )N©rJ   r-  rb   rÕ   rJ   rÖ   ©r   rE   rc   )rM   r  )r   rZ   rO   r„   r	  r   Úrepeatrn   rQ   r  r±   r  )r  rT   rM   r½   r\   r>   s         r%   Útest_draw_edges_arrowsizer6  Z  s—   € ä
�
‰
Ò+Ó,€AØ˜ FÑ
+€CÜ×"Ñ" 1¨#¸ÔC€Eä/9¸)ÄSÔ/I”	× Ñ  Ô+Èy€Iä˜U IÓ.ò 4‰ˆˆXÜ˜#œsŸ{™{×:Ñ:Ô;Ð;Ð;Ø×%Ñ%Ó'¨8Ó3Ð3Ð3ñ4r8   r  r  ©r  r  z<|-|>c                 óF  — t        j                  g d¢«      }ddddœ}t        j                  ||| ¬«      }t        | t        «      rt        j                  | «      n| } t        j                  j                  j                  t        j                  j                  j                  t        j                  j                  j                  dœ}t        || «      D ]J  \  }}t        |t        j                  j                  «      sJ ‚t        |j                  «       ||   «      rŒJJ ‚ y )Nr3  rÕ   rJ   rÖ   r4  )rM   r  r7  )r   rZ   rO   r„   Ústrr   r5  rQ   r  r  r  r  ÚCurveFilledABrn   r±   r  )r  rT   rM   r½   Úarrow_objectsr\   r>   s          r%   Útest_draw_edges_arrowstyler<  g  sé   € ä
�
‰
Ò+Ó,€AØ˜ FÑ
+€CÜ×"Ñ" 1¨#¸*ÔE€Eô )3°:¼sÔ(CŒ	×Ñ˜Ô$Èð ô
 �{‰{×%Ñ%×2Ñ2Ü�k‰k×$Ñ$×-Ñ-Ü—‘×'Ñ'×5Ñ5ñ€Mô ˜U JÓ/ò I‰ˆˆXÜ˜#œsŸ{™{×:Ñ:Ô;Ð;Ð;Ü˜#×,Ñ,Ó.°¸hÑ0GÕHÐHÐHñIr8   c                  ód   — t        j                  t        t        j	                  ddg«      ¬«       y )Nr-  r.  rí   )r   rð   r   ÚnpÚarrayr<   r8   r%   Útest_np_edgelistr@  |  s    € ä×Ñ”W¤r§x¡x°¸Ð0@Ó'AÖBr8   c                  óØ   — t        j                  d«      } dddœ}t        j                  t         j                  d¬«      5  t        j
                  | |«       d d d «       y # 1 sw Y   y xY w)Nr   rÕ   r¥   rJ   zhas no positionr$  )r   rN   r(  r)  ÚNetworkXErrorr¹   )rT   rM   s     r%   Ú*test_draw_nodes_missing_node_from_positionrC  �  sT   € Ü
�‰�aÓ€AØ˜Ñ
 €CÜ	�‰”r×'Ñ'Ð/@Ô	Añ 'Ü
×Ñ˜q #Ô&÷'÷ 'ñ 'ús   Á A Á A)r  )rÿ   r  c                 ó¨  — t         j                  «       \  }}t        j                  dg«      }dddœ}t        j                  |||| ¬«      d   }|j                  «       j                  «       ddd…df   }t        j                  |||| dd¬	«      d   }|j                  «       j                  «       ddd…df   }|d   |d   kD  sJ ‚|d
   |d
   k  sJ ‚y)áõ  Test that there is a wider gap between the node and the start of an
    incident edge when min_source_margin is specified.

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

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

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

    rJ   rÕ   rÖ   ©rÞ   r  r   Nrc   r
   ©rÞ   r  rÇ   rÈ   rE   )r   rÙ   r   rZ   rO   Úget_extentsÚcorners)	r  rÝ   rÞ   rT   rM   Údefault_patchÚdefault_extentÚpadded_patchÚpadded_extents	            r%   Ú)test_draw_edges_min_source_target_marginsrN  Š  sõ   € ô& �l‰l‹n�G€CˆÜ
�
‰
�F�8Ó€AØ˜Ñ
 €Cô ×*Ñ*¨1¨c°bÀZÔPÐQRÑS€MØ"×.Ñ.Ó0×8Ñ8Ó:¹3¸Q¸3À¸6ÑB€Nô ×)Ñ)Ø	ØØØØØôð ñ	€Lð !×,Ñ,Ó.×6Ñ6Ó8¹¸1¸¸a¸Ñ@€Mð ˜Ñ˜n¨QÑ/Ò/Ð/Ð/à˜Ñ˜n¨QÑ/Ò/Ð/Ñ/r8   c           	      ó:  — t         j                  «       \  }}t        j                  ddg«      }ddddœ}t        j                  |||| ¬«      }|D �cg c](  }|j                  «       j                  «       ddd	…d
f   ‘Œ* }}t        j                  |||| ddgddg¬«      }|D �	cg c](  }	|	j                  «       j                  «       ddd	…d
f   ‘Œ* }
}	t        ||
«      D ]0  \  }}	t        d|	›d|›�«       |	d
   |d
   kD  sJ ‚|	d   |d   k  rŒ0J ‚ yc c}w c c}	w )rE  rJ   rb   rÕ   rÖ   )rc   r   r4  rF  Nrc   r   éb   éf   rG  zp=z, d=rE   )	r   rÙ   r   rZ   rO   rH  rI  rn   Úprint)r  rÝ   rÞ   rT   rM   rJ  ÚdrK  rL  ÚprM  s              r%   Ú4test_draw_edges_min_source_target_margins_individualrU  ¹  s<  € ô& �l‰l‹n�G€CˆÜ
�
‰
�F˜FÐ#Ó$€AØ˜ FÑ
+€Cô ×*Ñ*¨1¨c°bÀZÔP€MØANÖO¸A�a—m‘m“o×-Ñ-Ó/±°!°°Q°Ó7ÐO€NÐOô ×)Ñ)Ø	ØØØØ˜s˜)Ø˜s˜)ô€Lð AMÖM¸1�Q—]‘]“_×,Ñ,Ó.©s°¨s°A¨vÓ6ÐM€MÐMÜ�N MÓ2ò ‰ˆˆ1Ü����E�q�dˆmÔð �‰t�a˜‘dŠ{Ðˆ{à�‰t�a˜‘d‹{Ðˆ{ñùò Pùò Ns   Á-DÂ$-Dc                  óˆ  — t         j                  «       \  } }t        j                  «       }|j	                  d«       |j                  dd«       t        j                  |ddi«      d   }|j                  «       }|j                  dkD  r|j                  dkD  sJ ‚t         j                  |«       t         j                  «        y)zDEnsure that selfloop extent is non-zero when there is only one node.r   rÕ   N)r   rÙ   r   rZ   Úadd_nodeÚadd_edgerO   rH  r   ÚheightÚdelaxesÚclose)rÝ   rÞ   rT   ÚpatchÚbboxs        r%   Ú&test_nonzero_selfloop_with_single_noder^  ç  s�   € ô �l‰l‹n�G€Cˆä
�
‰
‹€AØ‡J�Jˆq„MØ‡J�Jˆq�!Ôä×"Ñ" 1 q¨& kÓ2°1Ñ5€Eà×ÑÓ€DØ�:‰:˜Š>˜dŸk™k¨AšoÐ-Ð-ä‡K�K�„OÜ‡I�I…Kr8   c                  óÌ  — t         j                  «       \  } }t        j                  dt        j                  ¬«      }|j                  dd«       |j                  D �ci c]  }|||f“Œ	 }}t        j                  ||dg¬«      d   }|j                  «       }|j                  dkD  r|j                  dkD  sJ ‚t         j                  |«       t         j                  «        yc c}w )zfEnsure that selfloop extent is non-zero when only a single edge is
    specified in the edgelist.
    rc   rX   rE   r¥   rí   r   N)r   rÙ   r   rN   rZ   rX  r¼   rO   rH  r   rY  rZ  r[  )rÝ   rÞ   rT   rg   rM   r\  r]  s          r%   Ú2test_nonzero_selfloop_with_single_edge_in_edgelistr`  ù  s±   € ô
 �l‰l‹n�G€Cˆä
�‰�a¤b§j¡jÔ1€AØ‡J�Jˆq�!ÔØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&ä×"Ñ" 1 c°V°HÔ=¸aÑ@€Eà×ÑÓ€DØ�:‰:˜Š>˜dŸk™k¨AšoÐ-Ð-ä‡K�K�„OÜ‡I�I…Kùò 's   ÁC!c                  óœ   — g d¢} g d¢}d}t         j                  j                  j                  ||| «      }t	        |dd…df   |k(  «      sJ ‚y)zfTest apply_alpha when there is a mismatch between the number of
    supplied colors and elements.
    r4  rk   r�   Nru   )r   ÚdrawingÚnx_pylabÚapply_alphaÚall)rÂ   Ú	colorlistr{   Úrgba_colorss       r%   Útest_apply_alpharh    sM   € ò €HÚ€IØ€EÜ—*‘*×%Ñ%×1Ñ1°)¸UÀHÓM€KÜˆ{š1˜b˜5Ñ! UÑ*Ô+Ð+Ñ+r8   c                  óZ  — ddl } ddl} t        j                  d«      }t        j                  dt        j                  ¬«      }|D �ci c]  }|||f“Œ	 }}||fD ]f  }t        j
                  ||d¬«      }t        |«      t        |j                  «      k(  sJ ‚t        |d   t        j                  j                  «      rŒfJ ‚ ||fD ]@  }t        j
                  ||d¬«      }t        |t        j                  j                  «      rŒ@J ‚ t        j
                  ||«      }t        |t        j                  j                  «      sJ ‚t        j
                  ||«      }t        |«      t        j                  «      k(  sJ ‚t        |d   t        j                  j                  «      sJ ‚yc c}w )a/  
    The `arrows` keyword argument is used as a 3-way switch to select which
    type of object to use for drawing edges:
      - ``arrows=None`` -> default (FancyArrowPatches for directed, else LineCollection)
      - ``arrows=True`` -> FancyArrowPatches
      - ``arrows=False`` -> LineCollection
    r   Nr   rX   Tr²   F)r´   rµ   r   rN   rZ   rO   rf   r½   r„   rQ   r  r±   ré   r¯   )r   ÚUGrê   rg   rM   rT   r½   s          r%   Ú*test_draw_edges_toggling_with_arrows_kwargrk    sl  € ó "Ûä	�‰�qÓ	€BÜ	�‰�q¤r§z¡zÔ	2€BØ Ö
!˜ˆ1ˆq�!ˆf‰9Ð
!€CÐ
!ð �"ˆXò AˆÜ×&Ñ& q¨#°dÔ;ˆÜ�5‹zœS §¡›\Ò)Ð)Ð)Ü˜% ™(¤C§K¡K×$?Ñ$?Õ@Ð@Ð@ðAð �"ˆXò AˆÜ×&Ñ& q¨#°eÔ<ˆÜ˜%¤§¡×!?Ñ!?Õ@Ð@Ð@ðAô
 ×"Ñ" 2 sÓ+€EÜ�eœSŸ_™_×;Ñ;Ô<Ð<Ð<Ü×"Ñ" 2 sÓ+€EÜˆu‹:œ˜QŸW™W›Ò%Ð%Ð%Ü�e˜A‘h¤§¡× ;Ñ ;Ô<Ð<Ñ<ùò% "s   ÁF(Údrawing_funcc                 ó"  — dd l }t        j                  d«      }t        j	                  «       \  }} | ||¬«       t        d„ |j                  D «       «      sJ ‚|j                  rJ ‚t        j                  |«       t        j                  «        y )Nr   r   rá   c              3   ód   K  — | ](  }t        |t        j                  j                  «      –— Œ* y ­wr:   ©r„   rQ   ré   r¯   ©Ú.0rt   s     r%   ú	<genexpr>z?test_draw_networkx_arrows_default_undirected.<locals>.<genexpr>A  s!   è ø€ ÒUÀŒz˜!œSŸ_™_×;Ñ;×<ÑUùó   ‚.0)
r´   r   rN   r   rÙ   Úanyré   r  rZ  r[  ©rl  r   rT   rÝ   rÞ   s        r%   Ú,test_draw_networkx_arrows_default_undirectedrv  :  sd   € ã!ä
�‰�aÓ€AÜ�l‰l‹n�G€CˆÙ��rÕÜÑUÀbÇnÁnÔUÔUÐUÐUØ�zŠzÐˆ>Ü‡K�K�„OÜ‡I�I…Kr8   c                 óB  — dd l }t        j                  dt        j                  ¬«      }t        j                  «       \  }} | ||¬«       t        d„ |j                  D «       «      rJ ‚|j                  sJ ‚t        j                  |«       t        j                  «        y )Nr   r   rX   rá   c              3   ód   K  — | ](  }t        |t        j                  j                  «      –— Œ* y ­wr:   ro  rp  s     r%   rr  z=test_draw_networkx_arrows_default_directed.<locals>.<genexpr>N  s&   è ø€ ò Ø:;Œ
�1”c—o‘o×4Ñ4×5ñùrs  )r´   r   rN   rZ   r   rÙ   rt  ré   r  rZ  r[  ru  s        r%   Ú*test_draw_networkx_arrows_default_directedry  G  sw   € ã!ä
�‰�a¤b§j¡jÔ1€AÜ�l‰l‹n�G€CˆÙ��rÕÜñ Ø?A¿~¹~ôô ð ð ð �:Š:Ðˆ:Ü‡K�K�„OÜ‡I�I…Kr8   c                  ó"  — t        j                  d«      } | j                  dd«       t        j	                  «       \  }}t        j
                  | ddg|¬«       |j                  rJ ‚t        j                  |«       t        j                  «        y )Nr   r   rJ   rb   )rI   rÞ   )	r   rN   rX  r   rÙ   râ   r  rZ  r[  )rT   rÝ   rÞ   s      r%   Útest_edgelist_kwarg_not_ignoredr{  V  sb   € ä
�‰�aÓ€AØ‡J�Jˆq�!ÔÜ�l‰l‹n�G€CˆÜ‡G�GˆA˜ Ð(¨RÕ0Ø�zŠzÐˆ>Ü‡K�K�„OÜ‡I�I…Kr8   )rT   Úexpected_n_edgesrc   c           	      ó@  — t        g d¢«      D ])  \  }\  }}| j                  ||t        |dz  d«      ¬«       Œ+ | D �ci c]  }|||f“Œ	 }}dddgg d¢fD ]B  }t        j                  | ||¬«       t        j                  | ||¬«      }t        |«      |k(  rŒBJ ‚ yc c}w )	zGDraws edges correctly for 3 types of graphs and checks for valid length©rJ   rJ   rJ   r-  r   rc   ©Úweightúarc3,rad=0.1)r�  r�  úarc3,rad=0.2©ÚconnectionstyleN)Ú	enumeraterX  Úroundr   rO   rf   )	rT   r|  Úir  r  rg   rM   Ú
conn_styler³   s	            r%   Ú2test_draw_networkx_edges_multiedge_connectionstyler‰  a  s¹   € ô Ò?Ó@ò 1‰	ˆ‰6ˆAˆqØ	�
‰
�1�a¤ a¨!¡e¨Q£ˆ
Õ0ð1àÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 ð 	Ø	˜Ð(Ú8ðò /ˆ
ô
 	×Ñ˜q #°zÕBÜ×'Ñ'¨¨3À
ÔKˆÜ�6‹{Ð.Ó.Ð.Ð.ñ/ùò !s   ¾Bc           	      ó¤  — t        g d¢«      D ])  \  }\  }}| j                  ||t        |dz  d«      ¬«       Œ+ | D �ci c]  }|||f“Œ	 }}t        j                  | |g d¢¬«      }dddgg d¢fD ]Z  }t        j
                  | ||¬«      }	t        |	«      |k(  sJ ‚|	j                  «       D ]  }
|
j                  j                  d	k(  rŒJ ‚ Œ\ y
c c}w )zXDraws labels correctly for 3 types of graphs and checks for valid length and class namesr~  r   rc   r  )r�  r�  r�  rƒ  r�  r‚  ÚCurvedArrowTextN)
r…  rX  r†  r   rO   rÑ   rf   ÚvaluesÚ	__class__Ú__name__)rT   r|  r‡  r  r  rg   rM   r³   rˆ  Ú
text_itemsÚtis              r%   Ú8test_draw_networkx_edge_labels_multiedge_connectionstyler‘  u  sð   € ô Ò?Ó@ò 1‰	ˆ‰6ˆAˆqØ	�
‰
�1�a¤ a¨!¡e¨Q£ˆ
Õ0ð1àÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 ä×#Ñ#Ø	ˆ3Ò Pô€Fð 	Ø	˜Ð(Ú8ðò >ˆ
ô
 ×1Ñ1°!°SÈ*ÔUˆ
Ü�:‹Ð"2Ò2Ð2Ð2Ø×#Ñ#Ó%ò 	>ˆBØ—<‘<×(Ñ(Ð,=Ó=Ð=Ð=ñ	>ñ>ùò !s   ¾Cc                  ó,  — t        j                  «       } | j                  ddd¬«       | j                  ddd¬«       t        j                  | d«      }| D �ci c]  }|||f“Œ	 }}t        j                  | ||ddg¬	«      }t        |«      d
k(  sJ ‚y c c}w )Nr   rE   r(   r  rî   r€  r�  r‚  )rÍ   r„  rc   )r   Ú
MultiGraphrX  Úget_edge_attributesrÑ   rf   )rT   rÍ   rg   rM   r�  s        r%   Ú'test_draw_networkx_edge_label_multiedger•  �  s˜   € Ü
�‰‹€AØ‡J�Jˆq�!˜B€JÔØ‡J�Jˆq�!˜B€JÔÜ×(Ñ(¨¨HÓ5€KØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 Ü×-Ñ-Ø	ØØØ'¨Ð8ô	€Jô ˆz‹?˜aÒÐÑùò !s   ÁBc                  óª   — t        j                  d«      } | j                  D �ci c]  }|||f“Œ	 }}t        j                  | |i ¬«      i k(  sJ ‚yc c}w )zORegression test for draw_networkx_edge_labels with empty dict. See
    gh-5372.r   rÏ   N)r   rN   r¼   rÑ   )rT   rg   rM   s      r%   Ú(test_draw_networkx_edge_label_empty_dictr—  œ  sS   € ô 	�‰�aÓ€AØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&Ü×'Ñ'¨¨3¸BÔ?À2ÒEÐEÑEùò 's   ¤Ac                  ó°  — t         j                  «       \  } }g d¢}g d¢}t        j                  |«      }|j                  D �ci c]  }|||f“Œ	 }}t        j
                  |||||¬«       t        |j                  «      dk(  sJ ‚t        j                  |dd «      t        j                  ddg«      z   }t        |j                  |dd |«      D ]W  \  }}	}
|j                  «       j                  |
«      sJ ‚t        j                  j                  |j!                  «       |	«      rŒWJ ‚ t         j#                  |«       t         j%                  «        yc c}w )	ztWhen an edgelist is supplied along with a sequence of colors, check that
    the self-loops have the correct colors.)r/  rb   re   r¥   rˆ   )rc   rc   )ÚpinkÚcyanr	   r@   rH   Úgreen)rÞ   rI   r0   r   éýÿÿÿNr   rô   )r   rÙ   r   r·   r¼   rO   rf   r  r>  r?  rn   Úget_pathÚcontains_pointrQ   r6   rR   r[   rZ  r[  )rÝ   rÞ   rI   Úedge_colorsrT   rg   rM   Ú	sl_pointsr\   ÚclrÚslps              r%   Ú3test_draw_networkx_edges_undirected_selfloop_colorsr£  ¤  s#  € ô �l‰l‹n�G€Cˆâ?€HÚC€Kä
�‰�Ó€AØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&Ü×Ñ˜1˜c b°8ÈÕTô ˆr�z‰z‹?˜aÒÐÐô
 —‘˜ " #˜Ó'¬"¯(©(°A°s°8Ó*<Ñ<€Iô ˜RŸZ™Z¨°R°SÐ)9¸9ÓEò ?‰ˆˆS�#Ø�|‰|‹~×,Ñ,¨SÔ1Ð1Ð1Ü�z‰z×$Ñ$ S×%6Ñ%6Ó%8¸#Õ>Ð>Ð>ð?ô ‡K�K�„OÜ‡I�I…Kùò# 's   ÁEÚfap_only_kwargrî   r„  r‚  rÇ   r(   rÈ   c                 ó^  — t        j                  d«      }|D �ci c]  }|||f“Œ	 }}t        j                  «       \  }}t	        | j                  «       «      d   }t        j                  t        d|› d�¬«      5  t        j                  ||fd|i| ¤Ž ddd«       t        j                  «       5  t        j                  d«       t        j                  ||f|d	d
œ| ¤Ž ddd«       t        j                  |«       t        j                  «        yc c}w # 1 sw Y   Œ„xY w# 1 sw Y   ŒDxY w)zÏUsers should get a warning when they specify a non-default value for
    one of the kwargs that applies only to edges drawn with FancyArrowPatches,
    but FancyArrowPatches aren't being used under the hood.r   r   z

The z# keyword argument is not applicabler$  rÞ   NÚerrorT)rÞ   r³   )r   rN   r   rÙ   r,   Úkeysr(  ÚwarnsÚUserWarningrO   ÚwarningsÚcatch_warningsÚsimplefilterrZ  r[  )r¤  rT   rg   rM   rÝ   rÞ   Ú
kwarg_names          r%   Ú1test_user_warnings_for_unused_edge_drawing_kwargsr®  Á  s  € ô 	�‰�aÓ€AØÖ
 ˜ˆ1ˆq�!ˆf‰9Ð
 €CÐ
 Ü�l‰l‹n�G€Cˆô �n×)Ñ)Ó+Ó,¨QÑ/€JÜ	�‰Ü˜X j \Ð1TÐUô
ñ @ô 	×Ñ˜q #Ñ?¨"Ð?°Ò?÷@ô 
×	 Ñ	 Ó	"ñ Mä×Ñ˜gÔ&Ü
×Ñ˜q #ÐL¨"°TÑL¸^ÒL÷Mô
 ‡K�K�„OÜ‡I�I…Kùò# !÷
@ð @ú÷Mð Mús   šDÁ:DÂ00D#ÄD Ä#D,Údraw_fnc                 ó8  — t         j                  «       \  }}t        j                  d«      }t	        j
                  d¬«      5 } | ||¬«       d d d «       t        «      dk(  sJ ‚t         j                  |«       t         j                  «        y # 1 sw Y   ŒCxY w)NrÃ   T)Úrecordrá   r   )	r   rÙ   r   Úcycle_graphrª  r«  rf   rZ  r[  )r¯  rÝ   rÞ   rT   Úws        r%   Ú*test_no_warning_on_default_draw_arrowstyler´  ä  st   € ô �l‰l‹n�G€CˆÜ
�‰�qÓ€AÜ	×	 Ñ	 ¨Ô	-ð °Ù��bÕ÷äˆq‹6�QŠ;Ðˆ;ä‡K�K�„OÜ‡I�I…K÷ð ús   ÁBÂBÚ
hide_ticksTÚmethodc                 ó~  — t        j                  d«      }|j                  D �ci c]  }|||f“Œ	 }}t        j	                  «       \  }} | ||||¬«       |j
                  |j                  fD ]   }t        |j                  «       «      |k7  rŒ J ‚ t        j                  |«       t        j                  «        y c c}w )Nr   )rM   rÞ   rµ  )r   rN   r¼   r   rÙ   ÚxaxisÚyaxisÚboolÚget_ticklabelsrZ  r[  )r¶  rµ  rT   rg   rM   Ú_rÞ   rÜ   s           r%   Útest_hide_ticksr½  ñ  s¡   € ô 	�‰�aÓ€AØŸg™gÖ
&˜ˆ1ˆq�!ˆf‰9Ð
&€CÐ
&Ü�L‰L‹N�E€A€rÙ
ˆ1�#˜"¨Õ4Ø—‘˜2Ÿ8™8Ð$ò 9ˆÜ�D×'Ñ'Ó)Ó*¨jÓ8Ð8Ð8ð9ô ‡K�K�„OÜ‡I�I…Kùò 's   ¤B:)RÚ__doc__r   r   rª  r(  ÚimportorskiprQ   r>  Úuser   ÚrcParamsÚnetworkxr   Úbarbell_graphr   r&   r.   r7   r=   ÚmarkÚparametrizerV   r]   ri   rr   rv   r   r�   r·   rZ   r†   r‹   r�   r”   r›   r    r¨   r­   r¾   rÓ   Úmpl_image_comparerß   rä   rç   rë   rñ   rü   r  r  r"  r+  r0  r6  r<  r@  rC  rN  rU  r^  r`  rh  rk  râ   rð   rv  ry  r{  r“  rï   r‰  r‘  r•  r—  r£  r®  r   r´  rÑ   rO   rÐ   r¹   r½  r<   r8   r%   ú<module>rÇ     s^  ðÙ 2ã Û 	Û ã à€f×Ñ˜,Ó'€Ø€V×Ñ˜Ó!€Ø ‡�ˆ„Ø€f×ÑÐ-Ó.€Ø#€‡�ˆ]Ñ ó à
ˆ"×
Ñ
˜1˜aÓ
 €òò0	òò*ð
 ‡�×ÑØàØØ
ˆ�ˆØ#Ø
Ð	˜HÐ%ØØ
ˆ˜Ð ØØ
ˆ�fÐð
óð ‡�×Ñ˜ d¨V¨HÐ%5Ó6ñDó 7óðDð ‡�×ÑØàØØ
ˆ�ˆØ#Ø
Ð	˜HÐ%ØØ
ˆ˜Ð ØØ
ˆ�fÐð
óð ‡�×Ñ˜ d¨V¨HÐ%5Ó6ñ	Dó 7óð	Dò6FòrDòDòòð ‡�×Ñ˜¨¯©°"·*±*Ð'=Ó>ñ,ó ?ð,ð ‡�×ÑØàØ
ˆˆaˆðóñ3óð3ð ‡�×ÑØàØ
ˆˆaˆðóñ/óð/ð ‡�×ÑØâ ØØ	�Ððóñ5óð5ò=ò 	.ð ‡�×ÑØðóñ,óð,ð ‡�×ÑØà	ˆ
Ø	ˆØ	ˆÚØ	ˆsˆÚðó
ñ
,ó
ð
,ò5ò49Fðz ‡�×Ññó ðò2Nòò
Kò,Eò6ò$ò6ò.8ò&$ò
(ð ‡�×Ñ˜ rª<Ð&8Ó9ñ	4ó :ð	4ð ‡�×Ñ˜¨Ò/EÐ'FÓGñIó HðIò(Cò
'ð ‡�×Ñ˜ zÓ2ñ)0ó 3ð)0ð\ ‡�×Ñ˜ zÓ2ñ*ó 3ð*òZò$ò(,ò=ðD ‡�×Ñ˜¨"¯'©'°2×3CÑ3CÐ)DÓEñ	ó Fð	ð ‡�×Ñ˜¨"¯'©'°2×3CÑ3CÐ)DÓEñó Fðòð ‡�×ÑØØ€b‡j�jƒl�AÐ˜˜Ÿ™›¨!Ð,¨¨r¯©Ó/@À!Ð.DÐEóñ/ó	ð/ð  ‡�×ÑØØ€b‡j�jƒl�AÐ˜˜Ÿ™›¨!Ð,¨¨r¯©Ó/@À!Ð.DÐEóñ>ó	ð>ò( òFòð: ‡�×ÑØà	�sÐØ	�bÐØ	˜NÐ+Ø	˜bÐ!Ø	˜bÐ!ðó	ñó	ðð2 ‡�×Ñ˜ R§W¡W¨b×.>Ñ.>Ð$?Ó@ñ	ó Að	ð ‡�×Ñ˜¨¨t }Ó5Ø‡�×ÑØà
×ÑØ
×$Ñ$Ø
×ÑØ
×ÑØ
×Ñðó	ñ	ó	ó 6ñ	r8   