§
    ‡Ûg–E  ã                   óÔ  — 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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j                              d e!ee¦  «        ¦  «        d„ ¦   «         Z"ej                              de	j#        e	j$        g¦  «        d„ ¦   «         Z%d„ Z&d„ Z' edgdd¬¦  «        d„ ¦   «         Z( edgd¬¦  «        d„ ¦   «         Z) edgd¬ ¦  «        d!„ ¦   «         Z*d"„ Z+d#„ Z, ed$gd¬¦  «        d%„ ¦   «         Z- ed&gd¬¦  «        d'„ ¦   «         Z. ed(gd¬¦  «        d)„ ¦   «         Z/ ed*gd+dg d,¢¬-¦  «        d.„ ¦   «         Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4ej                              d3 ej5        d4„ d5D ¦   «         ¦  «        ¦  «        d6„ ¦   «         Z6ej                              d7 e7d8d9d:¦  «        ¦  «        d;„ ¦   «         Z8d<„ Z9d=„ Z:d>„ Z;dS )?é    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        t          j
                             ¦   «         j        ¦  «         d S )N©r   é   T©Úclosed)r   ÚnpÚzerosÚverticesÚshapeÚcodesr   Úget_extentsÚextentsr   ÚBboxÚnull©Úpaths    úP/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_path.pyÚtest_empty_closed_pathr      sƒ   € Ý•”˜Ñ Ô ¨Ð.Ñ.Ô.€DØŒ=Ô &Ò(Ð(Ð(Ð(ØŒ:ÐÐÐÝ�t×'Ò'Ñ)Ô)Ô1Ý!”×+Ò+Ñ-Ô-Ô5ñ7ô 7ð 7ð 7ð 7ó    c                  ó°   ‡— t          j        ¦   «         Šˆfd„} t          j        t          ¦  «        5   | ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó&   •— ‰ j         dz  ‰ _         d S )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ÁAc                  ó`  — t          j        d¦  «                             dd¦  «        } t          j        t
          t          j        d| j        › �¦  «        ¬¦  «        5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «                             ddd¦  «        }t          j        t
          t          j        d|j        › �¦  «        ¬¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «                             dd¦  «        }t          j        d¦  «        }t          j        d|j        › d	|j        › �¦  «        }t          j        t
          |¬¦  «        5  t          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
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   #   s`  € Ý”˜2‘”×&Ò& q¨!Ñ,Ô,€JÝ	Œ•zÝœYÐ'F°JÔ4DÐ'FÐ'FÑGÔGð
Iñ 
Iô 
Ið ð åˆZÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ”˜2‘”×&Ò& q¨!¨QÑ/Ô/€JÝ	Œ•zÝœYÐ'F°JÔ4DÐ'FÐ'FÑGÔGð
Iñ 
Iô 
Ið ð åˆZÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ”˜2‘”×&Ò& q¨!Ñ,Ô,€JÝ”	˜!‘”€IÝ
Œ)ð C°
Ô0@ð Cð CØ1:´ðCð Cñ Dô D€Cå	Œ•z¨Ð	-Ñ	-Ô	-ð $ð $ÝˆZ˜Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s6   ÁA:Á:A>ÂA>Ã#C?Ã?DÄDÆF#Æ#F'Æ*F'c                  óÂ   — t          j        g d¢¦  «        } ddg}|                      |¦  «        }|j        dk    sJ ‚t          j                             |ddg¦  «         d S )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_pathrG   6   sk   € åÔÐ?Ð?Ð?Ñ@Ô@€DØ˜*Ð%€FØ
×
Ò
˜vÑ
&Ô
&€CØŒ9˜ÒÐÐÐÝ„J×Ò˜C $¨ Ñ/Ô/Ð/Ð/Ð/r   c                  ó¦   — t          j        ¦   «         } g d¢}|                      |d¬¦  «        }t          j                             |g d¢¦  «         d S )N))ç        rI   )ç      ô?rI   )çÍÌÌÌÌÌì?rK   g      à¿)Úradius)TFF)r   r!   rA   r   rC   rD   )r   rE   Úresults      r   Ú$test_contains_points_negative_radiusrN   ?   sX   € ÝÔÑÔ€Dà2Ð2Ð2€FØ×!Ò! &°Ð!Ñ6Ô6€FÝ„J×Ò˜FÐ$8Ð$8Ð$8Ñ9Ô9Ð9Ð9Ð9r   r:   r   ))rI   rI   ç      è?ç      ð?)rI   rI   rP   r=   )rI   rP   rP   rP   )rP   r   rP   r   zpath, extentsc                 óh   — t          j        |                      ¦   «         j        |k    ¦  «        sJ ‚d S )N)r   Úallr   r   )r   r   s     r   Útest_exact_extentsrS   X   s4   € õ Œ6�$×"Ò"Ñ$Ô$Ô,°Ò7Ñ8Ô8Ð8Ð8Ð8Ð8Ð8r   Úignored_codec                 óÈ   — t          ddgddgddggt           j        t           j        | g¦  «        }t          j        |                     ¦   «         j        dk    ¦  «        sJ ‚d S )Nr   r:   r   )rI   rI   rP   rP   )r   ÚMOVETOr   rR   r   r   )rT   r   s     r   Útest_extents_with_ignored_codesrW   f   so   € õ �!�Q�Ø�Q�Ø�Q�ðåœ;­¬°\ÐBñDô D€Dõ Œ6�$×"Ò"Ñ$Ô$Ô,Ð0@Ò@ÑAÔAÐAÐAÐ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¦  «        }|                     |¦  «        }t          |¦  «        dk    sJ ‚|d         rJ ‚d S ©Nr   r:   r=   )r   Úarrayr   ÚnanrA   Úlen)ÚboxÚpÚtestÚcontainss       r   Útest_point_in_path_nanra   p   s’   € Ý
Œ(�Q˜�F˜Q ˜F Q¨ F¨Q°¨F°Q¸°FÐ;Ñ
<Ô
<€CÝˆS‰	Œ	€AÝŒ8•b”f˜c�]�OÑ$Ô$€DØ× Ò  Ñ&Ô&€HÝˆx‰=Œ=˜AÒÐÐÐØ˜Œ{ÐÐÐÐÐr   c                  ó6  — t          j        ¦   «         \  } }|                     dd¬¦  «         |                     dd¦  «        }|                     ¦   «                              |j                             d¦  «        |j        ¦  «        sJ ‚|                     ¦   «                              |j                             d¦  «        |j        ¦  «        rJ ‚|                     ¦   «                              |j                             d¦  «        |j        ¦  «        rJ ‚d S )	NÚlogr9   )ÚxscaleÚylimr:   é
   )é   r=   r<   )é2   r=   )ÚpltÚsubplotsÚsetÚaxvspanÚget_pathÚcontains_pointÚ	transDataÚ	transform)ÚfigÚaxÚpolygons      r   Útest_nonlinear_containmentrt   y   s  € ÝŒl‰nŒn�G€CˆØ‡F‚F�%˜f€FÑ%Ô%Ð%Ø�jŠj˜˜BÑÔ€GØ×ÒÑÔ×,Ò,Ø
Œ×Ò˜wÑ'Ô'¨¬ñ7ô 7ð 7ð 7ð 7à×ÒÑ!Ô!×0Ò0Ø
Œ×Ò˜xÑ(Ô(¨"¬,ñ8ô 8ð 8ð 8ð 8à×ÒÑ!Ô!×0Ò0Ø
Œ×Ò˜xÑ(Ô(¨"¬,ñ8ô 8ð 8ð 8ð 8ð 8ð 8r   zarrow_contains_point.pngTÚmpl20)Úremove_textÚstylec                  ó°  — t          j        ¦   «         \  } }|                     d¦  «         |                     d¦  «         t	          j        dddd¬¦  «        }|                     |¦  «         t	          j        ddd	d¬¦  «        }|                     |¦  «         t	          j        d
dddd¬¦  «        }|                     |¦  «         |||g}t          j        t          j	        ddd¦  «        t          j	        ddd¦  «        ¦  «        \  }}t          t          |                     ¦   «         |                     ¦   «         ¦  «        ¦  «        D ]†\  }\  }	}
|j                             |	|
g¦  «        \  }}t          d| j        ||¦  «        }t          |¦  «        D ]8\  }}|                     |¦  «        \  }}|r|                     |	|
dd¬¦  «         Œ9Œ‡d S )Nr   )r=   g      Ð?)r>   rO   z->é(   )Ú
arrowstyleÚmutation_scale)r=   r:   )r>   rJ   z]-[)r=   r>   )r>   g      ü?ÚfancyF)rz   Úfillr{   r   r   gš™™™™™¹?Úbutton_press_eventrg   Úr)ÚsÚc)ri   rj   Úset_xlimÚset_ylimr   ÚFancyArrowPatchÚ	add_patchr   Úmeshgridr,   Ú	enumerateÚzipÚravelro   rp   r	   Úcanvasr`   Úscatter)rq   rr   ÚarrowÚarrow1Úarrow2Úpatches_listÚXÚYÚkÚxÚyÚxdispÚydispÚeventÚmÚpatchÚinsideÚress                     r   Útest_arrow_contains_pointrœ   …   sí  € õ Œl‰nŒn�G€CˆØ‡K‚K�ÑÔÐØ‡K‚K�ÑÔÐõ Ô# K°Ø/3Ø35ð7ñ 7ô 7€Eð ‡L‚L�ÑÔÐåÔ$ X¨{Ø05Ø46ð8ñ 8ô 8€Fð ‡L‚L�ÑÔÐåÔ$ Z°Ø07Ø*/Ø46ð8ñ 8ô 8€Fð ‡L‚L�ÑÔÐØ˜6 6Ð*€Lõ Œ;•r”y  A sÑ+Ô+Ý”y  A sÑ+Ô+ñ-ô -�D€A€qå�s 1§7¢7¡9¤9¨a¯gªg©i¬iÑ8Ô8Ñ9Ô9ð -ð -‰	ˆ‰6ˆAˆqØ”|×-Ò-¨q°!¨fÑ5Ô5‰ˆˆuÝÐ/°´¸UÀEÑJÔJˆÝ! ,Ñ/Ô/ð 	-ð 	-‰HˆAˆuàŸ.š.¨Ñ/Ô/‰KˆF�CØð -Ø—
’
˜1˜a 1¨�
Ñ,Ô,Ð,øð		-ð-ð -r   zpath_clipping.svg)rv   c            
      ó¸  — t          j        d¬¦  «        } t          g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g¦  «        D ]Ÿ\  }}|                      d
d|dz   ¦  «        }g d¢}|                     |d         |d         |d         z   ¦  «         |                     |d         |d         |d         z   ¦  «         |                     t          |ddd¬¦  «        ¦  «         Œ d S )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   )ri   Úfigurer‡   Úadd_subplotr‚   rƒ   r…   r   )rq   ÚiÚxyrr   Úbboxs        r   Útest_path_clippingrµ   ¬   s/  € å
Œ*˜ZÐ
(Ñ
(Ô
(€CåØ<Ð<Ð<Ø<Ð<Ð<Ø<Ð<Ð<Ø<Ð<Ð<Ø<Ð<Ð<Ø<Ð<Ð<Ø<Ð<Ð<ð>ñ ?ô ?ð Að A‰ˆˆ2ð �_Š_˜Q  1 Q¡3Ñ'Ô'ˆØ!Ð!Ð!ˆØ
�Š�D˜”G˜T !œW t¨A¤wÑ.Ñ/Ô/Ð/Ø
�Š�D˜”G˜T !œW t¨A¤wÑ.Ñ/Ô/Ð/Ø
�Š•WØ˜&¨E¸$ð@ñ @ô @ñ 	Aô 	Að 	Að 	AðAð Ar   zsemi_log_with_zero.png)rw   c                  ó  — t          j        dd¦  «        } dd| dz  dz   z  z
  dz  }t          j        ¦   «         \  }}|                     | |ddd	¬
¦  «         |                     dd¦  «         |                     d¦  «         d S )Niöÿÿÿrf   rP   r   r:   é   ú-oé   r’   )ÚlwÚmarkeredgecolorgH¯¼šò×z>T)r   r,   ri   rj   Úsemilogyrƒ   Úgrid©r“   r”   rq   rr   s       r   Útest_log_transform_with_zeror¿   À   s€   € å
Œ	�#�rÑÔ€AØ	ˆs�A�q‘D˜‘F‰|Ñ	˜bÑ €AåŒl‰nŒn�G€CˆØ‡K‚K��1�d˜r°3€KÑ7Ô7Ð7Ø‡K‚K��aÑÔÐØ‡G‚GˆD�M„M€M€M€Mr   c                  óP   — t          j        ¦   «         } | j        j        dk    sJ ‚d S )Nr   )r   Úmake_compound_pathr   r   )r   s    r   Útest_make_compound_path_emptyrÂ   Ë   s.   € õ 	ÔÑ!Ô!€AØŒ:Ô˜vÒ%Ð%Ð%Ð%Ð%Ð%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 ‚d S )Nr   r)   )r   rV   ÚSTOPrÁ   r   Úsumr   )ÚzeroÚpathsÚcompound_paths      r   Útest_make_compound_path_stopsrÉ   Ò   si   € Øˆqˆ6€DØ�t�T˜4�L¥4¤;µ´	Ð":Ñ;Ô;Ð<Ñ<€EÝÔ+¨UÐ3€Mõ Œ6�-Ô%­¬Ò2Ñ3Ô3°qÒ8Ð8Ð8Ð8Ð8Ð8r   zxkcd.pngc                  ób  — t           j                             d¦  «         t          j        ddt           j        z  d¦  «        } t          j        | ¦  «        }t          j        ¦   «         5  t          j        ¦   «         \  }}| 	                    | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r¦   )
r   ÚrandomÚseedÚlinspaceÚpiÚsinri   Úxkcdrj   Úplotr¾   s       r   Ú	test_xkcdrÒ   Û   sÌ   € å„I‡N‚N�1ÑÔÐå
Œ�A�q�2œ5‘y #Ñ&Ô&€AÝ
Œˆq‰	Œ	€Aå	Œ‰Œð ð Ý”,‘.”.‰ˆˆRØ
�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á*-B$Â$B(Â+B(zxkcd_marker.pngc                  óÆ  — t           j                             d¦  «         t          j        ddd¦  «        } | }d| z
  }dt          j        d¦  «        z  }t          j        ¦   «         5  t          j        ¦   «         \  }}|                     | |dd¬¦  «         |                     | |dd¬¦  «         |                     | |d	d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr   rg   é   ç      @ú+rf   )ÚmsÚoú^)	r   rË   rÌ   rÍ   Úonesri   rÐ   rj   rÑ   )r“   Úy1Úy2Úy3rq   rr   s         r   Útest_xkcd_markerrÞ   ç   s  € å„I‡N‚N�1ÑÔÐå
Œ�A�q˜!ÑÔ€AØ	
€BØ	
ˆQ‰€BØ	�rŒw�q‰zŒzÑ	€Bå	Œ‰Œð #ð #Ý”,‘.”.‰ˆˆRØ
�Š��2�s˜rˆÑ"Ô"Ð"Ø
�Š��2�s˜rˆÑ"Ô"Ð"Ø
�Š��2�s˜rˆÑ"Ô"Ð"ð	#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Á'A"CÃCÃCzmarker_paths.pdfc                  óü   — d} t          j        t          j        | ¦  «        t          j        | ¦  «        dz   t          j        | ¦  «        ¦  «         t          j        d| ¦  «         t          j        dd¦  «         d S )Né   r(   éÿÿÿÿ)ri   Úerrorbarr   r,   rÚ   Úxlimre   )ÚNs    r   Útest_marker_paths_pdfrå   ÷   sc   € à	€Aå„L•”˜1‘”Ý”˜‘”˜a‘Ý”˜‘”ñô ð õ „HˆR��O„O€OÝ„HˆR��O„O€O€O€Or   Únan_pathÚdefault)ÚpdfÚsvgÚepsÚpng)rw   rv   Ú
extensionsc                  ó  — dt           j        dt           j        dddg} t           j        dt           j        ddt           j        d	g}t          j        ¦   «         \  }}|                     | d
¦  «         |                     |d
¦  «         d S )Nr   r   r(   rg   r+   rà   é	   rf   r'   r¸   )r   r[   ri   rj   rÑ   )Úy0rÛ   rq   rr   s       r   Útest_nan_isolated_pointsrð     ss   € ð �RŒV�Q�œ  1 aÐ	(€BÝ
Œ&�!•R”V˜Q ¥B¤F¨BÐ	/€BåŒl‰nŒn�G€Cˆà‡G‚GˆB�ÑÔÐØ‡G‚GˆB�ÑÔÐÐÐr   c                  ób  — 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¦  «        }|                     |¦  «                             ¦   «         d,         }t          j	        |d/         |d0         k    ¦  «        sJ ‚t          j	        |d0         |d,         k    ¦  «        sJ ‚d S )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»�«ªªò?)rP   r>   gÍÌÌÌÌÌ @rÕ   r:   r   Tr   éþÿÿÿrá   )
r   rZ   r   ÚvstackÚTr   r   Úclip_to_bboxÚto_polygonsrR   )ÚhandÚr0Úc0Úr1Úc1ÚpolyÚ	clip_rectÚpoly_clippeds           r   Ú(test_path_no_doubled_point_in_to_polygonrÿ     s£  € ÝŒ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¨A¨A¨q¨D¤zÐ2Ñ3Ô3Ô5¸dÐCÑCÔC€DÝ” " b ¨B°¨8Ð 4Ñ5Ô5€IØ×$Ò$ YÑ/Ô/×;Ò;Ñ=Ô=¸aÔ@€LåŒ6�,˜rÔ" l°2Ô&6Ò6Ñ7Ô7Ð7Ð7Ð7ÝŒ6�,˜rÔ" l°1¤oÒ5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6r   c                  óÔ  — ddgddgg} t          | ¦  «        }t          |                     dd¬¦  «        g ¦  «         t          |                     ddd¬¦  «        | g¦  «         t          |                     ¦   «         g ¦  «         t          |                     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          |                     dd¬¦  «        |g¦  «         t          |                     ddd¬¦  «        | g¦  «         t          |                     ¦   «         |g¦  «         t          |                     d¬¦  «        | g¦  «         d S )	Nrf   r·   ry   )ÚwidthÚheightF)r  r  Úclosed_only)r  é   )r   r   rö   )Údatar^   Úclosed_datas      r   Útest_path_to_polygonsr  2  sp  € Ø�ˆH�r˜2�hÐ€DÝˆT‰
Œ
€Aå�q—}’}¨2°b�}Ñ9Ô9¸2Ñ>Ô>Ð>Ý�q—}’}¨2°bÀe�}ÑLÔLØ�vñô ð å�q—}’}‘”¨Ñ+Ô+Ð+Ý�q—}’}°�}Ñ7Ô7¸$¸Ñ@Ô@Ð@à�ˆH�r˜2�h  R Ð)€DØ˜�8˜b "˜X¨¨B x°"°b°Ð:€KÝˆT‰
Œ
€Aå�q—}’}¨2°b�}Ñ9Ô9¸K¸=ÑIÔIÐIÝ�q—}’}¨2°bÀe�}ÑLÔLØ�vñô ð å�q—}’}‘”¨¨Ñ6Ô6Ð6Ý�q—}’}°�}Ñ7Ô7¸$¸Ñ@Ô@Ð@Ð@Ð@r   c                  óL  — ddgddgg} t           j        t           j        g}t          | ¦  «        }t          | |¦  «        }|                     ¦   «         }|                     ¦   «         }||usJ ‚|j        |j        usJ ‚||usJ ‚|j        |j        usJ ‚|j        |j        usJ ‚d S ©Nr   r:   )r   rV   ÚLINETOÚdeepcopyr   r   ©Úvertsr   Úpath1Úpath2Ú
path1_copyÚ
path2_copys         r   Útest_path_deepcopyr  G  sÄ   € à�ˆV�a˜�VÐ€EÝŒ[�$œ+Ð&€EÝ�‰KŒK€EÝ�˜ÑÔ€EØ—’Ñ!Ô!€JØ—’Ñ!Ô!€JØ˜
Ð"Ð"Ð"Ð"ØŒ> Ô!4Ð4Ð4Ð4Ð4Ø˜
Ð"Ð"Ð"Ð"ØŒ> Ô!4Ð4Ð4Ð4Ð4ØŒ;˜jÔ.Ð.Ð.Ð.Ð.Ð.Ð.r   c                  óL  — ddgddgg} t           j        t           j        g}t          | ¦  «        }t          | |¦  «        }|                     ¦   «         }|                     ¦   «         }||usJ ‚|j        |j        u sJ ‚||usJ ‚|j        |j        u sJ ‚|j        |j        u sJ ‚d S r	  )r   rV   r
  Úcopyr   r   r  s         r   Útest_path_shallowcopyr  V  sÀ   € à�ˆV�a˜�VÐ€EÝŒ[�$œ+Ð&€EÝ�‰KŒK€EÝ�˜ÑÔ€EØ—’‘”€JØ—’‘”€JØ˜
Ð"Ð"Ð"Ð"ØŒ>˜ZÔ0Ð0Ð0Ð0Ð0Ø˜
Ð"Ð"Ð"Ð"ØŒ>˜ZÔ0Ð0Ð0Ð0Ð0ØŒ;˜*Ô*Ð*Ð*Ð*Ð*Ð*Ð*r   Úphic                 ó@   — g | ]}t          j        g d ¢¦  «        |z   ‘ŒS ))
r   r¹   r  é-   é<   éK   éZ   éi   éx   é‡   )r   rZ   )Ú.0Údeltas     r   ú
<listcomp>r!  e  s>   € ð 0ð 0ð 0àõ „HÐ7Ð7Ð7Ñ8Ô8¸5Ñ@ð0ð 0ð 0r   )rá   r   r:   c                 ó2  — g d¢}t          j        ¦   «                              t          j        | ¦  «        ¦  «        }t          ddg¦  «        }|                     |¦  «        }|                     |¦  «        r|                     |¦  «        sJ ‚t          ddg¦  «        }|                     |¦  «        }|                     |¦  «        r|                     |¦  «        sJ ‚|                     t          ddg¦  «        ¦  «        }|                     t          ddg¦  «        ¦  «        }|                     |¦  «        r|                     |¦  «        sJ ‚|                     t          ddg¦  «        ¦  «        }|                     t          ddg¦  «        ¦  «        }|                     |¦  «        r|                     |¦  «        sJ ‚|                     |¦  «        sJ ‚|                     t          dd	g¦  «        ¦  «        }|                     t          d
dg¦  «        ¦  «        }|                     |¦  «        r|                     |¦  «        sJ ‚|                     t          ddg¦  «        ¦  «        }|                     t          ddg¦  «        ¦  «        }|                     |¦  «        s|                     |¦  «        rJ ‚|                     t          ddg¦  «        ¦  «        }|                     t          ddg¦  «        ¦  «        }|                     |¦  «        s|                     |¦  «        rJ ‚|D ]€}|                     t          ddg¦  «        ¦  «        }|                     t          d|z   dfd|z   dfg¦  «        ¦  «        }|                     |¦  «        s|                     |¦  «        rJ ‚Œ�|D ]{}|                     t          ddg¦  «        ¦  «        }|                     t          dd|z   fdg¦  «        ¦  «        }|                     |¦  «        s|                     |¦  «        rJ ‚Œ||D ]{}|                     t          ddg¦  «        ¦  «        }|                     t          dd|z
  fdg¦  «        ¦  «        }|                     |¦  «        r|                     |¦  «        sJ ‚Œ||                     t          ddg¦  «        ¦  «        }|                     t          g d¢¦  «        ¦  «        }|                     |¦  «        r|                     |¦  «        sJ ‚|                     t          ddg¦  «        ¦  «        }|                     t          ddg¦  «        ¦  «        }|                     |¦  «        s|                     |¦  «        rJ ‚|                     t          ddg¦  «        ¦  «        }|                     t          ddg¦  «        ¦  «        }|                     |¦  «        s|                     |¦  «        rJ ‚d S )N)gñhãˆµøä>g:Œ0âŽyE>g»½×Ùß|Û=gê-�™—q=)rò   r   )r   r   r8   r9   )r   r)   )r:   r)   ©r   rg   )rg   rg   r;   )r)   r)   )r)   r   )r   r+   )r   rà   r   r:   rg   )r9   r   r#  )r:   rá   )r   rá   )rK   r:   )rI   ç      À)rP   r$  )rP   ç      @)rI   r%  )r   ÚAffine2DÚrotater   Údeg2radr   Útransform_pathÚintersects_path)r  Ú	eps_arrayrp   ÚaÚbrê   s         r   Útest_path_intersect_pathr.  e  s  € ð
 +Ð*Ð*€IåÔ#Ñ%Ô%×,Ò,­R¬Z¸©_¬_Ñ=Ô=€Iõ 	ˆg�vÐÑÔ€AØ× Ò  Ñ#Ô#€AØ×Ò˜QÑÔÐ8 A×$5Ò$5°aÑ$8Ô$8Ð8Ð8Ð8õ 	ˆf�fÐÑÔ€AØ× Ò  Ñ#Ô#€AØ×Ò˜QÑÔÐ8 A×$5Ò$5°aÑ$8Ô$8Ð8Ð8Ð8ð 	× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ×Ò˜QÑÔÐ8 A×$5Ò$5°aÑ$8Ô$8Ð8Ð8Ð8ð 	× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ×Ò˜QÑÔÐ8 A×$5Ò$5°aÑ$8Ô$8Ð8Ð8Ð8ð ×Ò˜QÑÔÐÐÐð 	× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ×Ò˜QÑÔÐ8 A×$5Ò$5°aÑ$8Ô$8Ð8Ð8Ð8ð 	× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò  Ñ#Ô#Ð@¨A×,=Ò,=¸aÑ,@Ô,@Ð@Ð@Ð@ð 	× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò  Ñ#Ô#Ð@¨A×,=Ò,=¸aÑ,@Ô,@Ð@Ð@Ð@ð ð Eð EˆØ×$Ò$¥T¨6°6Ð*:Ñ%;Ô%;Ñ<Ô<ˆØ×$Ò$¥T¨A°©G°Q¨<¸!¸c¹'À1¸Ð*FÑ%GÔ%GÑHÔHˆØ×$Ò$ QÑ'Ô'ÐD°×0AÒ0AÀ!Ñ0DÔ0DÐDÐDÐDÐDð ð Eð EˆØ×$Ò$¥T¨6°6Ð*:Ñ%;Ô%;Ñ<Ô<ˆØ×$Ò$¥T¨A¨q°3©w¨<¸Ð*@Ñ%AÔ%AÑBÔBˆØ×$Ò$ QÑ'Ô'ÐD°×0AÒ0AÀ!Ñ0DÔ0DÐDÐDÐDÐDð ð =ð =ˆØ×$Ò$¥T¨6°6Ð*:Ñ%;Ô%;Ñ<Ô<ˆØ×$Ò$¥T¨A¨q°3©w¨<¸Ð*@Ñ%AÔ%AÑBÔBˆØ× Ò  Ñ#Ô#Ð<¨×(9Ò(9¸!Ñ(<Ô(<Ð<Ð<Ð<Ð<ð 	× Ò ¥ v¨vÐ&6Ñ!7Ô!7Ñ8Ô8€AØ× Ò ¥Ð&>Ð&>Ð&>Ñ!?Ô!?Ñ@Ô@€AØ×Ò˜QÑÔÐ8 A×$5Ò$5°aÑ$8Ô$8Ð8Ð8Ð8ð 	× Ò ¥ w°Ð&8Ñ!9Ô!9Ñ:Ô:€AØ× Ò ¥ v¨xÐ&8Ñ!9Ô!9Ñ:Ô:€AØ× Ò  Ñ#Ô#Ð@¨A×,=Ò,=¸aÑ,@Ô,@Ð@Ð@Ð@ð 	× Ò ¥ y°)Ð&<Ñ!=Ô!=Ñ>Ô>€AØ× Ò ¥ x°Ð&:Ñ!;Ô!;Ñ<Ô<€AØ× Ò  Ñ#Ô#Ð@¨A×,=Ò,=¸aÑ,@Ô,@Ð@Ð@Ð@Ð@Ð@r   Úoffseti0ýÿÿii  r  c                 ó*  — | }d| z   }t          j        ||¦  «        }t          j        |j        d¬¦  «        }t          j        |j        d¬¦  «        }t          j                             |d¦  «         t          j                             |d¦  «         d S )Nih  r   )Úaxisrá   r:   )r   Úarcr   Úminr   ÚmaxrC   Úassert_allclose)r/  ÚlowÚhighr   ÚminsÚmaxss         r   Útest_full_arcr:  ¹  sƒ   € à
€CØ�‰<€DåŒ8�C˜ÑÔ€DÝŒ6�$”- aÐ(Ñ(Ô(€DÝŒ6�$”- aÐ(Ñ(Ô(€DÝ„J×Ò˜t RÑ(Ô(Ð(Ý„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        ¬
¦  «        ¦  «        }|                     | ¦  «        rJ ‚|                      |¦  «        rJ ‚d S )Ng•äÎÆ‰@g¤›íŸ‡ @g¿¼�Ð…íŠ@g®ƒÿ„äŸ@g`m”¡$‹@gêÉ;E @g6ÇÚ[éý‰@gÑ‡6Ê1 @)r:   r   r   r   éO   )rB   g-�¹HßŠ@gG�NìÄê @güê`³ŠØŠ@g{×âK›Ê @gù¸ºŒî
¡@)r:   r   r   r   r   )r   r   rZ   Ú	code_typer*  ©Ú	this_pathÚoutline_paths     r   Ú!test_disjoint_zero_length_segmentrA  Å  s  € ÝÝ
ŒØ˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)ð+ñ 	,ô 	,õ 	ŒÐ!Ð!Ð!­¬Ð8Ñ8Ô8ñ:ô :€Iõ Ý
ŒØ˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)Ø˜=Ð)ð+ñ 	,ô 	,õ 	Œ���Ý”~ð	'ñ 	'ô 	'ñ(ô (€Lð ×+Ò+¨IÑ6Ô6Ð6Ð6Ð6Ø×(Ò(¨Ñ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¦  «        ¦  «        }|                     | ¦  «        sJ ‚|                      |¦  «        sJ ‚d S rY   )r   r   rZ   r*  r>  s     r   Ú"test_intersect_zero_length_segmentrC  Ý  s°   € ÝÝ
ŒØ�ˆFØ�ˆFð
ñ 	ô 	ñô €Iõ Ý
ŒØ�ˆFØ�ˆHØ�ˆHØ�ˆFð	
ñ 	ô 	ñô €Lð ×'Ò'¨	Ñ2Ô2Ð2Ð2Ð2Ø×$Ò$ \Ñ2Ô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 ]J}|                     d¬¦  «        }t          |¦  «        dk    sJ ‚|j        d         t           j	        k    sJ ‚ŒKd S )NT)Úremove_nansr:   r   )
r   r   r[   rV   Ú	CLOSEPOLYÚCURVE3Úcleanedr\   r   rÄ   )rÇ   r^   rH  s      r   Útest_cleanup_closepolyrI  ð  s  € õ 	�rŒv•r”vÐ¥¤­¬Ð 0Ð1ÝŒk�4œ>Ð*ñ	,ô 	,õ 	�rŒv•r”vÐ¥¤­¬Ð 0Ð1Ñ2Ô2õ 	�rŒv•r”vÐ¥¤­¬Ð 0µ2´6½2¼6Ð2BÝŒv•r”vÐð åŒk�4œ;­¬µT´^ÐDñ	Fô 	Fð€Eð ð -ð -ˆØ—)’)¨�)Ñ-Ô-ˆÝ�7‰|Œ|˜qÒ Ð Ð Ð ØŒ}˜QÔ¥4¤9Ò,Ð,Ð,Ð,Ð,ð-ð -r   )<r/   Únumpyr   Únumpy.testingr   r"   Ú
matplotlibr   Úmatplotlib.pathr   Úmatplotlib.patchesr   Úmatplotlib.testing.decoratorsr   Úmatplotlib.pyplotÚpyplotri   r   Úmatplotlib.backend_basesr	   r   r%   r6   rG   rN   rV   ÚCURVE4rG  r
  Ú_test_pathsÚ_test_path_extentsÚmarkÚparametrizerˆ   rS   rF  rÄ   rW   ra   rt   rœ   rµ   r¿   rÂ   rÉ   rÒ   rÞ   rå   rð   rÿ   r  r  r  Úconcatenater.  Úranger:  rA  rC  rI  © r   r   ú<module>r[     s  ðØ 	€	€	€	à Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø €€€à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &Ø :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø /Ð /Ð /Ð /Ð /Ð /ð7ð 7ð 7ðð ð ð$ð $ð $ð&0ð 0ð 0ð:ð :ð :ð 	€Dˆ1ˆaˆ&�1�a�&˜1˜a˜& 1 a &Ð	)ØŒK˜œ d¤k°4´;Ð?ñAô Að 	€Dˆ1ˆaˆ&�1�a�&˜1˜a˜&Ð	! D¤K°´¸d¼kÐ#JÑKÔKà€Dˆ1ˆaˆ&�1�a�&Ð	˜DœK¨¬Ð5Ñ6Ô6à€Dˆ1ˆaˆ&ˆ�D”K�=Ñ!Ô!ð
€ð(ð (ð (Ð ð „×Ò˜¨#¨#¨kÐ;MÑ*NÔ*NÑOÔOð
9ð 
9ñ PÔOð
9ð „×Ò˜¨$¬.¸$¼)Ð)DÑEÔEðBð Bñ FÔEðBðð ð ð	8ð 	8ð 	8ð ÐÐ-Ð.Ø"¨'ð3ñ 3ô 3ð"-ð "-ñ3ô 3ð"-ðJ ÐÐ&Ð'°TÐ:Ñ:Ô:ðAð Añ ;Ô:ðAð& ÐÐ+Ð,°GÐ<Ñ<Ô<ðð ñ =Ô<ðð&ð &ð &ð9ð 9ð 9ð Ð�:�,¨DÐ1Ñ1Ô1ðð ñ 2Ô1ðð ÐÐ$Ð%°4Ð8Ñ8Ô8ð#ð #ñ 9Ô8ð#ð ÐÐ%Ð&°DÐ9Ñ9Ô9ðð ñ :Ô9ðð Ð�:�, i¸TØ9Ð9Ð9ð;ñ ;ô ;ðð ñ;ô ;ðð 7ð  7ð  7ðFAð Að Að*/ð /ð /ð+ð +ð +ð „×Ò˜  ¤ð 0ð 0àð0ñ 0ô 0ñ !ô !ñ ô ðNAð NAñô ðNAðb „×Ò˜ 5 5¨¨s°BÑ#7Ô#7Ñ8Ô8ð(ð (ñ 9Ô8ð(ð7ð 7ð 7ð03ð 3ð 3ð&-ð -ð -ð -ð -r   