Ë
    ¨eh1K  ã                   óR  — d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d	„ Zd
„ Zd„ Zd„ Zej2                  j5                  d e
g d¢d¬«      ddf e
g d¢d¬«      ddf e
g d¢d¬«      ddf e
g d¢d¬«      ddf e
g d¢d¬«      ddf e
g d¢d¬«      ddfg«      d„ «       Zd„ Z e
d d gdd gddgd dgge
j:                  e
j<                  e
j<                  e
j<                  g«       e
d d gd dgdd gge
j:                  e
j>                  e
j>                  g«       e
d dgddgge
j:                  e
j@                  g«       e
ddgge
j:                  g«      gZ!g d¢Z"ej2                  j5                  d e#e!e"«      «      d„ «       Z$ej2                  j5                  de
jJ                  e
jL                  g«      d„ «       Z'd „ Z(d!„ Z) ed"gdd# e jT                  «       d$k(  rd nd%¬&«      d'„ «       Z+ ed(gd¬)«      d*„ «       Z, ed+gd#¬,«      d-„ «       Z-d.„ Z.d/„ Z/ ed0gd¬)«      d1„ «       Z0 ed2gd¬)«      d3„ «       Z1 ed4gd¬)«      d5„ «       Z2 ed6gd7dg d8¢ e jT                  «       d$k(  rd nd9¬:«      d;„ «       Z3d<„ Z4d=„ Z5d>„ Z6d?„ Z7ej2                  j5                  d@ ejp                  dAD � cg c]  }  ejr                  g dB¢«      | z   ‘Œ c} «      «      dC„ «       Z:ej2                  j5                  dD e;dEdFdG«      «      dH„ «       Z<dI„ Z=dJ„ Z>dK„ Z?yc c} w )Lé    N)Úassert_array_equal)Úpatches)ÚPath)ÚPolygon)Úimage_comparison)Ú
transforms)Ú
MouseEventc                  ó*  — t        t        j                  d«      d¬«      } | j                  j                  dk(  sJ ‚| j
                  �J ‚t        | j                  «       j                  t        j                  j                  «       j                  «       y )N©r   é   T©Úclosed)r   ÚnpÚzerosÚverticesÚshapeÚcodesr   Úget_extentsÚextentsr   ÚBboxÚnull©Úpaths    úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/tests/test_path.pyÚtest_empty_closed_pathr      sn   € Ü”—‘˜Ó ¨Ô.€DØ�=‰=×Ñ &Ò(Ð(Ð(Ø�:‰:ÐÐÐÜ�t×'Ñ'Ó)×1Ñ1Ü!—‘×+Ñ+Ó-×5Ñ5õ7ó    c                  ó¢   ‡— t        j                  «       Šˆfd„} t        j                  t        «      5   | «        d d d «       y # 1 sw Y   y xY w)Nc                  ó.   •— ‰ j                   dz  ‰ _         y )Nç       @)r   r   s   €r   Úmodify_verticesz+test_readonly_path.<locals>.modify_vertices   s   ø€ ØŸ™¨Ñ+ˆ�r   )r   Úunit_circleÚpytestÚraisesÚAttributeError)r    r   s    @r   Útest_readonly_pathr%      s?   ø€ Ü×ÑÓ€Dô,ô 
�‰”~Ó	&ñ ÙÔ÷÷ ñ ús   ´AÁAc                  óR  — t        j                  d«      j                  dd«      } t        j                  t
        t        j                  d| j                  › �«      ¬«      5  t        | «       d d d «       t        j                  d«      j                  ddd«      }t        j                  t
        t        j                  d|j                  › �«      ¬«      5  t        |«       d d d «       t        j                  d«      j                  dd«      }t        j                  d«      }t        j                  d|j                  › d	|j                  › �«      }t        j                  t
        |¬«      5  t        ||«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   Œ°xY w# 1 sw Y   y xY w)
Né   é   é   z
has shape )Úmatchr   é   zYour vertices have shape z but your codes have shape )
r   ÚarangeÚreshaper"   r#   Ú
ValueErrorÚreÚescaper   r   )Ú
bad_verts1Ú
bad_verts2Ú
good_vertsÚ	bad_codesÚmsgs        r   Útest_path_exceptionsr6   $   sT  € Ü—‘˜2“×&Ñ& q¨!Ó,€JÜ	�‰”zÜŸY™Y¨°J×4DÑ4DÐ3EÐ'FÓGô
Iñ äˆZÔ÷ô —‘˜2“×&Ñ& q¨!¨QÓ/€JÜ	�‰”zÜŸY™Y¨°J×4DÑ4DÐ3EÐ'FÓGô
Iñ äˆZÔ÷ô —‘˜2“×&Ñ& q¨!Ó,€JÜ—	‘	˜!“€IÜ
�)‰)Ð/°
×0@Ñ0@Ð/Að B1Ø1:·±Ð0AðCó D€Cä	�‰”z¨Ô	-ñ $ÜˆZ˜Ô#÷$ð $÷ñ ú÷
ð ú÷$ð $ús$   Á!FÃFÅ.FÆFÆFÆF&c                  óÂ   — t        j                  g d¢«      } ddg}| j                  |«      }|j                  dk(  sJ ‚t        j
                  j                  |ddg«       y )N)©r   r   ©r   é   ©r:   r:   ©r:   r   ©ç      à?r>   )ç      ø?r>   ÚboolTF)r   Ú_create_closedÚcontains_pointsÚdtyper   ÚtestingÚassert_equal)r   ÚpointsÚrets      r   Útest_point_in_pathrH   7   sW   € ä×ÑÒ?Ó@€DØ˜*Ð%€FØ
×
Ñ
˜vÓ
&€CØ�9‰9˜ÒÐÐÜ‡J�J×Ñ˜C $¨ Õ/r   z#other_path, inside, inverted_inside)©ç      Ð?rJ   )rJ   ç      è?)rK   rK   )rK   rJ   rI   Tr   F)©ç      Ð¿rM   ©rM   ç      ü?©rO   rO   ©rO   rM   rL   )rL   rN   r=   rP   rQ   rL   )rI   )rJ   ç      ô?)rR   rR   )rR   rJ   rI   ©r8   r9   r;   r<   r8   )©r   r   )r   r)   ©r)   r)   )r)   r   rT   c                 óv   — t        g d¢d¬«      }|j                  | «      |u sJ ‚| j                  |«      |u sJ ‚y )NrS   Tr   )r   Úcontains_path)Ú
other_pathÚinsideÚinverted_insider   s       r   Útest_contains_pathr[   @   sC   € ô Ò8ÀÔF€DØ×Ñ˜jÓ)¨VÑ3Ð3Ð3Ø×#Ñ# DÓ)¨_Ñ<Ð<Ñ<r   c                  óž   — t        j                  «       } g d¢}| j                  |d¬«      }t        j                  j                  |g d¢«       y )N))ç        r]   )rR   r]   )çÍÌÌÌÌÌì?r^   g      à¿)Úradius)TFF)r   r!   rB   r   rD   rE   )r   rF   Úresults      r   Ú$test_contains_points_negative_radiusra   S   s?   € Ü×ÑÓ€Dâ2€FØ×!Ñ! &°Ð!Ó6€FÜ‡J�J×Ñ˜FÒ$8Õ9r   r:   r   ))r]   r]   rK   ç      ð?)r]   r]   rb   r>   )r]   rb   rb   rb   )rb   r   rb   r   zpath, extentsc                 óh   — t        j                  | j                  «       j                  |k(  «      sJ ‚y )N)r   Úallr   r   )r   r   s     r   Útest_exact_extentsre   l   s*   € ô �6‰6�$×"Ñ"Ó$×,Ñ,°Ñ7Ô8Ð8Ñ8r   Úignored_codec                 óÐ   — t        ddgddgddggt         j                  t         j                  | g«      }t        j                  |j	                  «       j
                  dk(  «      sJ ‚y )Nr   r:   r   )r]   r]   rb   rb   )r   ÚMOVETOr   rd   r   r   )rf   r   s     r   Útest_extents_with_ignored_codesri   z   sc   € ô �!�Q�Ø�Q�Ø�Q�ðäŸ;™;¬¯©°\ÐBóD€Dô �6‰6�$×"Ñ"Ó$×,Ñ,Ð0@Ñ@ÔAÐAÑAr   c                  óþ   — t        j                  ddgddgddgddgddgg«      } t        | «      }t        j                  t         j                  dgg«      }|j	                  |«      }t        |«      dk(  sJ ‚|d   rJ ‚y ©Nr   r:   r>   )r   Úarrayr   ÚnanrB   Úlen)ÚboxÚpÚtestÚcontainss       r   Útest_point_in_path_nanrs   „   s€   € Ü
�(‰(�Q˜�F˜Q ˜F Q¨ F¨Q°¨F°Q¸°FÐ;Ó
<€CÜˆS‹	€AÜ�8‰8”b—f‘f˜c�]�OÓ$€DØ× Ñ  Ó&€HÜˆx‹=˜AÒÐÐØ˜Š{Ðˆ?ˆ{r   c                  ó2  — t        j                  «       \  } }|j                  dd¬«       |j                  dd«      }|j	                  «       j                  |j                  j                  d«      |j                  «       «      sJ ‚|j	                  «       j                  |j                  j                  d«      |j                  «       «      rJ ‚|j	                  «       j                  |j                  j                  d«      |j                  «       «      rJ ‚y )	NÚlogr9   )ÚxscaleÚylimr:   é
   )é   r>   r=   )é2   r>   )	ÚpltÚsubplotsÚsetÚaxvspanÚget_pathÚcontains_pointÚ	transDataÚ	transformÚget_transform)ÚfigÚaxÚpolygons      r   Útest_nonlinear_containmentr‡   �   sú   € Ü�l‰l‹n�G€CˆØ‡F�F�%˜f€FÔ%Ø�j‰j˜˜BÓ€GØ×ÑÓ×,Ñ,Ø
�‰×Ñ˜wÓ'¨×)>Ñ)>Ó)@ôBð Bð Bà×ÑÓ!×0Ñ0Ø
�‰×Ñ˜xÓ(¨'×*?Ñ*?Ó*AôCð Cð Cà×ÑÓ!×0Ñ0Ø
�‰×Ñ˜xÓ(¨'×*?Ñ*?Ó*AôCð Cð Cð Cr   zarrow_contains_point.pngÚmpl20Úx86_64gÙÎ÷Sã¥›?)Úremove_textÚstyleÚtolc                  ój  — t        j                  «       \  } }|j                  d«       |j                  d«       t	        j
                  dddd¬«      }|j                  |«       t	        j
                  ddd	d¬«      }|j                  |«       t	        j
                  d
dddd¬«      }|j                  |«       |||g}t        j                  t        j                  ddd«      t        j                  ddd«      «      \  }}t        t        |j                  «       |j                  «       «      «      D ]  \  }\  }	}
|j                  j                  |	|
g«      \  }}t        d| j                   ||«      }t        |«      D ]1  \  }}|j#                  |«      \  }}|sŒ|j%                  |	|
dd¬«       Œ3 Œ� y )Nr   )r>   rJ   )r?   rK   z->é(   )Ú
arrowstyleÚmutation_scale)r>   r:   )r?   rR   z]-[)r>   r?   )r?   rO   ÚfancyF)r�   Úfillr�   r   r   gš™™™™™¹?Úbutton_press_eventry   Úr)ÚsÚc)r{   r|   Úset_xlimÚset_ylimr   ÚFancyArrowPatchÚ	add_patchr   Úmeshgridr,   Ú	enumerateÚzipÚravelr�   r‚   r	   Úcanvasrr   Úscatter)r„   r…   ÚarrowÚarrow1Úarrow2Úpatches_listÚXÚYÚkÚxÚyÚxdispÚydispÚeventÚmÚpatchrY   Úress                     r   Útest_arrow_contains_pointr°   ™   sˆ  € ô �l‰l‹n�G€CˆØ‡K�K�ÔØ‡K�K�Ôô ×#Ñ# K°Ø/3Ø35ô7€Eð ‡L�L�Ôä×$Ñ$ X¨{Ø05Ø46ô8€Fð ‡L�L�Ôä×$Ñ$ Z°Ø07Ø*/Ø46ô8€Fð ‡L�L�ÔØ˜6 6Ð*€Lô �;‰;”r—y‘y  A sÓ+Ü—y‘y  A sÓ+ó-�D€A€qäœs 1§7¡7£9¨a¯g©g«iÓ8Ó9ò -‰	ˆ‰6ˆAˆqØ—|‘|×-Ñ-¨q°!¨fÓ5‰ˆˆuÜÐ/°·±¸UÀEÓJˆÜ! ,Ó/ò 	-‰HˆAˆuàŸ.™.¨Ó/‰KˆF�CÚØ—
‘
˜1˜a 1¨�
Õ,ñ		-ñ-r   zpath_clipping.svg)rŠ   c            
      óh  — t        j                  d¬«      } t        g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g«      D ]y  \  }}| j                  d
d|dz   «      }g d¢}|j	                  |d   |d   |d   z   «       |j                  |d   |d   |d   z   «       |j                  t        |ddd¬«      «       Œ{ y )N)g      @gÍÌÌÌÌÌ@)Úfigsize)©éÈ   r´   ©r´   é^  ©é�  r¶   )r¸   r´   )r³   rµ   r·   ©r¸   éd   )©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   éŒ   i€  i  r   r)   ÚnoneÚredT)Ú	facecolorÚ	edgecolorr   )r{   Úfigurerœ   Úadd_subplotr—   r˜   rš   r   )r„   ÚiÚxyr…   Úbboxs        r   Útest_path_clippingrÉ   À   s½   € ä
�*‰*˜ZÔ
(€CäÚ<Ú<Ú<Ú<Ú<Ú<Ú<ð>ó ?ò A‰ˆˆ2ð �_‰_˜Q  1 Q¡3Ó'ˆÚ!ˆØ
�‰�D˜‘G˜T !™W t¨A¡wÑ.Ô/Ø
�‰�D˜‘G˜T !™W t¨A¡wÑ.Ô/Ø
�‰”WØ˜&¨E¸$ô@õ 	AñAr   zsemi_log_with_zero.png)r‹   c                  óò   — t        j                  dd«      } dd| dz  dz   z  z
  dz  }t        j                  «       \  }}|j	                  | |ddd	¬
«       |j                  dd«       |j                  d«       y )Niöÿÿÿrx   rb   r   r:   é   ú-oé   r§   )ÚlwÚmarkeredgecolorgH¯¼šò×z>T)r   r,   r{   r|   Úsemilogyr˜   Úgrid©r¨   r©   r„   r…   s       r   Útest_log_transform_with_zerorÓ   Ô   sk   € ä
�	‰	�#�rÓ€AØ	ˆs�A�q‘D˜‘F‰|Ñ	˜bÑ €Aä�l‰l‹n�G€CˆØ‡K�K��1�d˜r°3€KÔ7Ø‡K�K��aÔØ‡G�GˆD…Mr   c                  ó¦  — t        j                  «       } | j                  j                  dk(  sJ ‚t        j                  | | «      }|j                  j                  dk(  sJ ‚|j                  j                  dk(  sJ ‚t        j                  t        dg«      | «      }|j                  j                  dk(  sJ ‚|j                  j                  dk(  sJ ‚y )Nr   )r   r8   )r:   r   )r:   )r   Úmake_compound_pathr   r   r   )ÚemptyÚr2Úr3s      r   Útest_make_compound_path_emptyrÙ   ß   s°   € ô ×#Ñ#Ó%€EØ�>‰>×Ñ 6Ò)Ð)Ð)Ü	×	 Ñ	  ¨Ó	.€BØ�;‰;×Ñ Ò&Ð&Ð&Ø�8‰8�>‰>˜TÒ!Ð!Ð!Ü	×	 Ñ	 ¤ v h£°Ó	7€BØ�;‰;×Ñ Ò&Ð&Ð&Ø�8‰8�>‰>˜TÒ!Ð!Ñ!r   c                  óú   — ddg} dt        | | gt         j                  t         j                  g«      gz  }t        j                  |Ž }t	        j
                  |j                  t         j                  k(  «      dk(  sJ ‚y )Nr   r)   )r   rh   ÚSTOPrÕ   r   Úsumr   )ÚzeroÚpathsÚcompound_paths      r   Útest_make_compound_path_stopsrà   ì   sh   € Øˆqˆ6€DØŒt�T˜4�L¤4§;¡;´·	±	Ð":Ó;Ð<Ñ<€EÜ×+Ñ+¨UÐ3€Mô �6‰6�-×%Ñ%¬¯©Ñ2Ó3°qÒ8Ð8Ñ8r   zxkcd.pngc                  ó`  — t         j                  j                  d«       t        j                  ddt         j                  z  d«      } t        j
                  | «      }t        j                  «       5  t        j                  «       \  }}|j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr   r   rº   )
r   ÚrandomÚseedÚlinspaceÚpiÚsinr{   Úxkcdr|   ÚplotrÒ   s       r   Ú	test_xkcdré   õ   ss   € ä‡I�I‡N�N�1Ôä
�‰�A�qœ2Ÿ5™5‘y #Ó&€AÜ
�‰ˆq‹	€Aä	�‰‹ñ Ü—,‘,“.‰ˆˆRØ
�‰��1Œ÷÷ ñ ús   Á1*B$Â$B-zxkcd_marker.pngc                  ó¬  — t         j                  j                  d«       t        j                  ddd«      } | }d| z
  }dt        j                  d«      z  }t        j                  «       5  t        j                  «       \  }}|j                  | |dd¬«       |j                  | |dd¬«       |j                  | |d	d¬«       d d d «       y # 1 sw Y   y xY w)
Nr   ry   é   ç      @ú+rx   )ÚmsÚoú^)	r   râ   rã   rä   Úonesr{   rç   r|   rè   )r¨   Úy1Úy2Úy3r„   r…   s         r   Útest_xkcd_markerrõ     s­   € ä‡I�I‡N�N�1Ôä
�‰�A�q˜!Ó€AØ	
€BØ	
ˆQ‰€BØ	Œr�w‰w�q‹zÑ	€Bä	�‰‹ñ #Ü—,‘,“.‰ˆˆRØ
�‰��2�s˜rˆÔ"Ø
�‰��2�s˜rˆÔ"Ø
�‰��2�s˜rˆÔ"÷	#÷ #ñ #ús   Á*AC
Ã
Czmarker_paths.pdfc                  ó  — d} t        j                  t        j                  | «      t        j                  | «      dz   t        j                  | «      «       t        j
                  d| «       t        j                  dd«       y )Né   r(   éÿÿÿÿ)r{   Úerrorbarr   r,   rñ   Úxlimrw   )ÚNs    r   Útest_marker_paths_pdfrü     sS   € à	€Aä‡L�L”—‘˜1“Ü—‘˜“˜a‘Ü—‘˜“ôô ‡H�HˆR�„OÜ‡H�HˆR�…Or   Únan_pathÚdefault)ÚpdfÚsvgÚepsÚpngg;ßO�—n‚?)r‹   rŠ   Ú
extensionsrŒ   c                  ó*  — dt         j                  dt         j                  dddg} t         j                  dt         j                  ddt         j                  d	g}t        j                  «       \  }}|j	                  | d
«       |j	                  |d
«       y )Nr   r   r(   ry   r+   r÷   é	   rx   r'   rÌ   )r   rm   r{   r|   rè   )Úy0rò   r„   r…   s       r   Útest_nan_isolated_pointsr    sk   € ð
 ŒR�V‰V�QœŸ™  1 aÐ	(€BÜ
�&‰&�!”R—V‘V˜Q ¤B§F¡F¨BÐ	/€Bä�l‰l‹n�G€Cˆà‡G�GˆB�ÔØ‡G�GˆB�Õr   c                  ó.  — t        j                  ddgddgddgddgdd	gd
dgddgddgddgddgddgddgddgddgddgddgdd gd!d"gd#d"gd$d%gd&d'gd(d)gg«      } d*\  }}}}t        t        j                  | d d …d+f   | d d …d,f   f«      j                  d-¬.«      }t        j                  ||g||gg«      }|j                  |«      j                  «       d,   }t        j                  |d/   |d0   k7  «      sJ ‚t        j                  |d0   |d,   k(  «      sJ ‚y )1Ngm¥”Rú?g·DpTU•ò?g     €ù?g�_9çœõ?g     Àþ?g      ö?g¥ÝÇUUu@gF^9ï½÷ú?g      ÿ?g$z|ï½ù?g["8ªªj@g¥ÝÇUU•@gƒ˜øaŒ1ü?g["8ªªŠ@g²}L”RJý?g·DpTU•ÿ?gm¥”Rþ?g      @g=:¿rÎ9ÿ?g["8ªªÊ@gALü0Æ @g¥ÝÇUU@gyå¼÷Þÿ?gI»�«ªêÿ?g¿³Ï9ç @g["8ªª
@g�_9çœ@g     à@gº¡ÆB@g¥ÝÇUUÕ@gq1PcŒ1@g     @ÿ?ghÖæœs@g¥ÝÇUUõ@güíÂA!@gm¥”R@g     €@gáb Æc@g     @û?g9ìßqaŸ @gI»�«ªªò?)rb   r?   gÍÌÌÌÌÌ @rì   r:   r   Tr   éþÿÿÿrø   )
r   rl   r   ÚvstackÚTr   r   Úclip_to_bboxÚto_polygonsrd   )ÚhandÚr0Úc0Úr1Úc1ÚpolyÚ	clip_rectÚpoly_clippeds           r   Ú(test_path_no_doubled_point_in_to_polygonr  *  s  € Ü�8‰8Ø
�jÐ	!Ø
�gÐ	Ø
�hÐ	Ø
�Ð	Ø
�fÐ	Ø
�jÐ	!Ø
�jÐ	!Ø
�jÐ	!Ø
�jÐ	!Ø
�dÐ	Ø
�ZÐ	 Ø
�jÐ	!Ø
�jÐ	!Ø
�jÐ	!Ø
�XÐ	Ø
�jÐ	!Ø
�hÐ	Ø
�jÐ	!Ø
�jÐ	!Ø
�fÐ	Ø
�XÐ	Ø
�jÐ	!ð+	#ó$€Dð0 ,Ñ€RˆˆR�ä”—	‘	˜4¢ 1 ™: tªA¨q¨D¡zÐ2Ó3×5Ñ5¸dÔC€DÜ—‘ " b ¨B°¨8Ð 4Ó5€IØ×$Ñ$ YÓ/×;Ñ;Ó=¸aÑ@€Lä�6‰6�,˜rÑ" l°2Ñ&6Ñ6Ô7Ð7Ð7Ü�6‰6�,˜rÑ" l°1¡oÑ5Ô6Ð6Ñ6r   c                  óB  — ddgddgg} t        | «      }t        |j                  dd¬«      g «       t        |j                  ddd¬«      | g«       t        |j                  «       g «       t        |j                  d¬«      | g«       ddgddgddgg} ddgddgddgddgg}t        | «      }t        |j                  dd¬«      |g«       t        |j                  ddd¬«      | g«       t        |j                  «       |g«       t        |j                  d¬«      | g«       y )	Nrx   rË   rŽ   )ÚwidthÚheightF)r  r  Úclosed_only)r  é   )r   r   r  )Údatarp   Úclosed_datas      r   Útest_path_to_polygonsr  M  s  € Ø�ˆH�r˜2�hÐ€DÜˆT‹
€Aä�q—}‘}¨2°b�}Ó9¸2Ô>Ü�q—}‘}¨2°bÀe�}ÓLØ�vôä�q—}‘}“¨Ô+Ü�q—}‘}°�}Ó7¸$¸Ô@à�ˆH�r˜2�h  R Ð)€DØ˜�8˜b "˜X¨¨B x°"°b°Ð:€KÜˆT‹
€Aä�q—}‘}¨2°b�}Ó9¸K¸=ÔIÜ�q—}‘}¨2°bÀe�}ÓLØ�vôä�q—}‘}“¨¨Ô6Ü�q—}‘}°�}Ó7¸$¸Õ@r   c                  óv  — ddgddgg} t         j                  t         j                  g}t        | «      }t        | |«      }|j                  «       }|j                  «       }||usJ ‚|j                  |j                  usJ ‚||usJ ‚|j                  |j                  usJ ‚|j
                  |j
                  usJ ‚y ©Nr   r:   )r   rh   ÚLINETOÚdeepcopyr   r   ©Úvertsr   Úpath1Úpath2Ú
path1_copyÚ
path2_copys         r   Útest_path_deepcopyr)  b  s·   € à�ˆV�a˜�VÐ€EÜ�[‰[œ$Ÿ+™+Ð&€EÜ�‹K€EÜ�˜Ó€EØ—‘Ó!€JØ—‘Ó!€JØ˜
Ñ"Ð"Ð"Ø�>‰> ×!4Ñ!4Ñ4Ð4Ð4Ø˜
Ñ"Ð"Ð"Ø�>‰> ×!4Ñ!4Ñ4Ð4Ð4Ø�;‰;˜j×.Ñ.Ñ.Ð.Ñ.r   c                  óv  — ddgddgg} t         j                  t         j                  g}t        | «      }t        | |«      }|j                  «       }|j                  «       }||usJ ‚|j                  |j                  u sJ ‚||usJ ‚|j                  |j                  u sJ ‚|j
                  |j
                  u sJ ‚y r   )r   rh   r!  Úcopyr   r   r#  s         r   Útest_path_shallowcopyr,  q  sµ   € à�ˆV�a˜�VÐ€EÜ�[‰[œ$Ÿ+™+Ð&€EÜ�‹K€EÜ�˜Ó€EØ—‘“€JØ—‘“€JØ˜
Ñ"Ð"Ð"Ø�>‰>˜Z×0Ñ0Ñ0Ð0Ð0Ø˜
Ñ"Ð"Ð"Ø�>‰>˜Z×0Ñ0Ñ0Ð0Ð0Ø�;‰;˜*×*Ñ*Ñ*Ð*Ñ*r   Úphi)rø   r   r:   )
r   rÍ   r  é-   é<   éK   éZ   éi   éx   é‡   c                 óà	  — g d¢}t        j                  «       j                  t        j                  | «      «      }t        ddg«      }|j                  |«      }|j                  |«      r|j                  |«      sJ ‚t        ddg«      }|j                  |«      }|j                  |«      r|j                  |«      sJ ‚|j                  t        ddg«      «      }|j                  t        ddg«      «      }|j                  |«      r|j                  |«      sJ ‚|j                  t        ddg«      «      }|j                  t        ddg«      «      }|j                  |«      r|j                  |«      sJ ‚|j                  |«      sJ ‚|j                  t        dd	g«      «      }|j                  t        d
dg«      «      }|j                  |«      r|j                  |«      sJ ‚|j                  t        ddg«      «      }|j                  t        ddg«      «      }|j                  |«      s|j                  |«      rJ ‚|j                  t        ddg«      «      }|j                  t        ddg«      «      }|j                  |«      s|j                  |«      rJ ‚|D ]h  }|j                  t        ddg«      «      }|j                  t        d|z   dfd|z   dfg«      «      }|j                  |«      s|j                  |«      sŒhJ ‚ |D ]c  }|j                  t        ddg«      «      }|j                  t        dd|z   fdg«      «      }|j                  |«      s|j                  |«      sŒcJ ‚ |D ]c  }|j                  t        ddg«      «      }|j                  t        dd|z
  fdg«      «      }|j                  |«      r|j                  |«      rŒcJ ‚ |j                  t        ddg«      «      }|j                  t        g d¢«      «      }|j                  |«      r|j                  |«      sJ ‚|j                  t        ddg«      «      }|j                  t        ddg«      «      }|j                  |«      s|j                  |«      rJ ‚|j                  t        ddg«      «      }|j                  t        ddg«      «      }|j                  |«      s|j                  |«      rJ ‚y )N)gñhãˆµøä>g:Œ0âŽyE>g»½×Ùß|Û=gê-�™—q=)r	  r   )r   r   r8   r9   )r   r)   )r:   r)   ©r   ry   )ry   ry   r;   rU   )r)   r   )r   r+   )r   r÷   r   r:   ry   )r9   r   r6  )r:   rø   )r   rø   )r^   r:   )r]   ç      À)rb   r7  )rb   ç      @)r]   r8  )r   ÚAffine2DÚrotater   Údeg2radr   Útransform_pathÚintersects_path)r-  Ú	eps_arrayr‚   ÚaÚbr  s         r   Útest_path_intersect_pathrA  €  sÑ  € ò
 +€Iä×#Ñ#Ó%×,Ñ,¬R¯Z©Z¸«_Ó=€Iô 	ˆg�vÐÓ€AØ× Ñ  Ó#€AØ×Ñ˜QÔ A×$5Ñ$5°aÔ$8Ð8Ð8ô 	ˆf�fÐÓ€AØ× Ñ  Ó#€AØ×Ñ˜QÔ A×$5Ñ$5°aÔ$8Ð8Ð8ð 	× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ×Ñ˜QÔ A×$5Ñ$5°aÔ$8Ð8Ð8ð 	× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ×Ñ˜QÔ A×$5Ñ$5°aÔ$8Ð8Ð8ð ×Ñ˜QÔÐÐð 	× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ×Ñ˜QÔ A×$5Ñ$5°aÔ$8Ð8Ð8ð 	× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ  Ô#¨A×,=Ñ,=¸aÔ,@Ð@Ð@ð 	× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ  Ô#¨A×,=Ñ,=¸aÔ,@Ð@Ð@ð ò EˆØ×$Ñ$¤T¨6°6Ð*:Ó%;Ó<ˆØ×$Ñ$¤T¨A°©G°Q¨<¸!¸c¹'À1¸Ð*FÓ%GÓHˆØ×$Ñ$ QÔ'°×0AÑ0AÀ!Õ0DÐDÐDðEð ò EˆØ×$Ñ$¤T¨6°6Ð*:Ó%;Ó<ˆØ×$Ñ$¤T¨A¨q°3©w¨<¸Ð*@Ó%AÓBˆØ×$Ñ$ QÔ'°×0AÑ0AÀ!Õ0DÐDÐDðEð ò =ˆØ×$Ñ$¤T¨6°6Ð*:Ó%;Ó<ˆØ×$Ñ$¤T¨A¨q°3©w¨<¸Ð*@Ó%AÓBˆØ× Ñ  Ô#¨×(9Ñ(9¸!Õ(<Ð<Ð<ð=ð 	× Ñ ¤ v¨vÐ&6Ó!7Ó8€AØ× Ñ ¤Ò&>Ó!?Ó@€AØ×Ñ˜QÔ A×$5Ñ$5°aÔ$8Ð8Ð8ð 	× Ñ ¤ w°Ð&8Ó!9Ó:€AØ× Ñ ¤ v¨xÐ&8Ó!9Ó:€AØ× Ñ  Ô#¨A×,=Ñ,=¸aÔ,@Ð@Ð@ð 	× Ñ ¤ y°)Ð&<Ó!=Ó>€AØ× Ñ ¤ x°Ð&:Ó!;Ó<€AØ× Ñ  Ô#¨A×,=Ñ,=¸aÔ,@Ð@Ð@Ð,@r   Úoffseti0ýÿÿii  r.  c                 óB  — | }d| z   }t        j                  ||«      }t        j                  |j                  d¬«      }t        j
                  |j                  d¬«      }t        j                  j                  |d«       t        j                  j                  |d«       y )Nih  r   )Úaxisrø   r:   )r   Úarcr   Úminr   ÚmaxrD   Úassert_allclose)rB  ÚlowÚhighr   ÚminsÚmaxss         r   Útest_full_arcrM  Ô  sp   € à
€CØ�‰<€Dä�8‰8�C˜Ó€DÜ�6‰6�$—-‘- aÔ(€DÜ�6‰6�$—-‘- aÔ(€DÜ‡J�J×Ñ˜t RÔ(Ü‡J�J×Ñ˜t QÕ'r   c            
      óœ  — t        t        j                  ddgddgddgddgddgg«      t        j                  g d	¢t         j                  ¬
«      «      } t        t        j                  ddgddgddgddgddgg«      t        j                  g d¢t         j                  ¬
«      «      }|j	                  | «      rJ ‚| j	                  |«      rJ ‚y )Ng•äÎÆ‰@g¤›íŸ‡ @g¿¼�Ð…íŠ@g®ƒÿ„äŸ@g`m”¡$‹@gêÉ;E @g6ÇÚ[éý‰@gÑ‡6Ê1 @)r:   r   r   r   éO   )rC   g-�¹HßŠ@gG�NìÄê @güê`³ŠØŠ@g{×âK›Ê @gù¸ºŒî
¡@)r:   r   r   r   r   )r   r   rl   Ú	code_typer=  ©Ú	this_pathÚoutline_paths     r   Ú!test_disjoint_zero_length_segmentrT  à  sã   € ÜÜ
�‰Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)ð+ó 	,ô 	�‰Ò!¬¯©Ô8ó:€Iô Ü
�‰Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)ð+ó 	,ô 	�‰’Ü—~‘~ô	'ó(€Lð ×+Ñ+¨IÔ6Ð6Ð6Ø×(Ñ(¨Ô6Ð6Ð6Ð6r   c            	      óì   — t        t        j                  ddgddgg«      «      } t        t        j                  ddgddgddgddgg«      «      }|j                  | «      sJ ‚| j                  |«      sJ ‚y rk   )r   r   rl   r=  rQ  s     r   Ú"test_intersect_zero_length_segmentrV  ø  sŽ   € ÜÜ
�‰Ø�ˆFØ�ˆFð
ó 	ó€Iô Ü
�‰Ø�ˆFØ�ˆHØ�ˆHØ�ˆFð	
ó 	ó€Lð ×'Ñ'¨	Ô2Ð2Ð2Ø×$Ñ$ \Ô2Ð2Ñ2r   c            	      ó‚  — t        t        j                  t        j                  gt        j                  t        j                  ggt         j                  t         j                  g«      t        t        j                  t        j                  gt        j                  t        j                  gg«      t        t        j                  t        j                  gt        j                  t        j                  gt        j                  t        j                  gt        j                  t        j                  ggt         j                  t         j
                  t         j
                  t         j                  g«      g} | D ]F  }|j                  d¬«      }t        |«      dk(  sJ ‚|j                  d   t         j                  k(  rŒFJ ‚ y )NT)Úremove_nansr:   r   )
r   r   rm   rh   Ú	CLOSEPOLYÚCURVE3Úcleanedrn   r   rÛ   )rÞ   rp   r[  s      r   Útest_cleanup_closepolyr\    s$  € ô 	Œr�v‰v”r—v‘vÐ¤§¡¬¯©Ð 0Ð1Ü�k‰kœ4Ÿ>™>Ð*ó	,ô 	Œr�v‰v”r—v‘vÐ¤§¡¬¯©Ð 0Ð1Ó2ô 	Œr�v‰v”r—v‘vÐ¤§¡¬¯©Ð 0´2·6±6¼2¿6¹6Ð2BÜ�v‰v”r—v‘vÐð ä�k‰kœ4Ÿ;™;¬¯©´T·^±^ÐDó	Fð€Eð ò -ˆØ—)‘)¨�)Ó-ˆÜ�7‹|˜qÒ Ð Ð Ø�}‰}˜QÑ¤4§9¡9Ó,Ð,Ð,ñ-r   )@Úplatformr/   Únumpyr   Únumpy.testingr   r"   Ú
matplotlibr   Úmatplotlib.pathr   Úmatplotlib.patchesr   Úmatplotlib.testing.decoratorsr   Úmatplotlib.pyplotÚpyplotr{   r   Úmatplotlib.backend_basesr	   r   r%   r6   rH   ÚmarkÚparametrizer[   ra   rh   ÚCURVE4rZ  r!  Ú_test_pathsÚ_test_path_extentsr�   re   rY  rÛ   ri   rs   r‡   Úmachiner°   rÉ   rÓ   rÙ   rà   ré   rõ   rü   r  r  r  r)  r,  Úconcatenaterl   rA  ÚrangerM  rT  rV  r\  )Údeltas   0r   ú<module>rp     sù  ðÛ Û 	ã å ,Û å Ý  Ý &Ý :Ý Ý !Ý /ò7òò$ò&0ð ‡�×ÑØ)Ù
ÒQØôØ˜uð&á
ÒWØôØ ð&á
ò 9àôà ð'ñ ÒQØôØ ð'á
Ò3¸DÔAÀ5È%ÐPÙ
Ò3¸DÔAÀ5È%ÐPð
RóSñ=óSð=ò:ñ 	ˆ1ˆaˆ&�1�a�&˜1˜a˜& 1 a &Ð	)Ø�K‰K˜Ÿ™ d§k¡k°4·;±;Ð?óAñ 	ˆ1ˆaˆ&�1�a�&˜1˜a˜&Ð	! D§K¡K°·±¸d¿k¹kÐ#JÓKáˆ1ˆaˆ&�1�a�&Ð	˜DŸK™K¨¯©Ð5Ó6áˆ1ˆaˆ&ˆ�D—K‘K�=Ó!ð
€ò(Ð ð ‡�×Ñ˜©#¨kÐ;MÓ*NÓOñ
9ó Pð
9ð ‡�×Ñ˜¨$¯.©.¸$¿)¹)Ð)DÓEñBó FðBòò	Cñ Ð-Ð.¸DÈØ+˜8×+Ñ+Ó-°Ò9‘a¸uôFñ"-óFð"-ñJ Ð&Ð'°TÔ:ñAó ;ðAñ& Ð+Ð,°GÔ<ñó =ðò
"ò9ñ �:�,¨DÔ1ñó 2ðñ Ð$Ð%°4Ô8ñ#ó 9ð#ñ Ð%Ð&°DÔ9ñó :ðñ �:�, i¸TÚ9Ø+˜8×+Ñ+Ó-°Ò9‘a¸uôFñóFðò 7òFAò*/ò+ð ‡�×Ñ˜  §¡àö0àð €B‡H�HÒ7Ó8¸5Ó@ò0ó !ó ñNAóðNAðb ‡�×Ñ˜¡5¨¨s°BÓ#7Ó8ñ(ó 9ð(ò7ò03ó&-ùòW0s   ËL$