o
    îÇh¶‚  ã                   @   s¸  d Z ddlZddlZddlmZmZ ddlZddlZ	ddl
mZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZ ddlmZ ddlmZmZm Z!m"Z#m$Z%m&Z& dd	„ Z'd
d„ Z(dd„ Z)dd„ Z*edgddd„ ƒZ+edgddd„ ƒZ,dd„ Z-edgƒdd„ ƒZ.edgdddd„ ƒZ/ed gddd!d"„ ƒZ0e	j1 2d#¡d$d%„ ƒZ3ed&gddd'd(„ ƒZ4d)d*„ Z5edgdd+d,„ ƒZ6d-d.„ Z7ed/gde 8¡ d0krÎdnd1d2d3d4„ ƒZ9d5d6„ Z:ed7gdd#d8d9d:„ ƒZ;ed;gƒd<d=„ ƒZ<ed>gd?de 8¡ d0krüdnd@dAdBdC„ ƒZ=edgddDdE„ ƒZ>edgddFdG„ ƒZ?dHdI„ Z@dJdK„ ZAdLdM„ ZBdNdO„ ZCedgddPdQ„ ƒZDdRdS„ ZEdTdU„ ZFedVgd?dWdXdY„ ƒZGedZgd?dWd[d\„ ƒZHd]d^„ ZIejJ Kd_d`¡dadb„ ƒZLedcgdgdddedf„ ƒZMedcgdgdddgdh„ ƒZNedcgdgdddidj„ ƒZOdkdl„ ZPejJ Kdmdn¡dodp„ ƒZQdqdr„ ZRdsdt„ ZSdudv„ ZTdwdx„ ZUdydz„ ZVed{gdd|gd?dd}d~d„ ƒZWeg d€¢ddd‚„ ƒZXeg d€¢ddƒd„„ ƒZYd…d†„ ZZeg d‡¢ddˆd‰„ ƒZ[dS )Šz'
Tests specific to the patches module.
é    N)Úassert_almost_equalÚassert_array_equal)	ÚAnnulusÚEllipseÚPatchÚPolygonÚ	RectangleÚFancyArrowPatchÚ
FancyArrowÚBoxStyleÚArc)Úimage_comparisonÚcheck_figures_equal)ÚBbox)ÚcollectionsÚcolorsÚpatchesÚpathÚ
transformsÚrcParamsc                  C   s  ddgddgddgg} | ddgg }t | dd}| ¡ sJ ‚t| ¡ |ƒ | | ¡ t| ¡ |ƒ t |dd}t| ¡ | ƒ | |¡ t| ¡ | ƒ t | dd}| ¡ rVJ ‚t| ¡ | ƒ | | ¡ t| ¡ | ƒ t |dd}t| ¡ |ƒ | |¡ t| ¡ |ƒ d S )Nr   é   T©ÚclosedF)r   Ú
get_closedr   Úget_xyÚset_xy)ÚxyÚxyclosedÚp© r   úq/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/matplotlib/tests/test_patches.pyÚtest_Polygon_close   s(   



r!   c            	      C   sV  ddg} d}d}d}t | ||ƒ}t| ¡ |ƒ t| ¡ dƒ d}| d¡ t| ¡ |ƒ t| ¡ d	ƒ d
}t ¡ jg | ¢t 	|¡‘R Ž }| 
|¡}| |¡ t| ¡ |ƒ | d |d  | d |d  g} t| ||ƒ}t| ¡ |ƒ d}| d¡ t| ¡ |ƒ t| ¡ | ƒ d
}t ¡ jg | ¢t 	|¡‘R Ž }| 
|¡}| |¡ t| ¡ |ƒ d S )Né
   é   r   é   )©r"   r#   )é   r#   )r&   é   )r"   r'   )g      %@é   )r%   )r"   r(   )é   r(   )r)   r#   éZ   )é	   ç     €4@é!   r   ))ç      '@r,   )r.   ç     €5@)ç      #@r/   )r0   r,   )r   r   Úget_cornersÚ
get_centerÚ	set_angleÚmtransformsÚAffine2DÚrotate_aroundÚnpÚdeg2radÚ	transformr   r   )	ÚlocÚwidthÚheightÚcornersÚrectÚcorners_rotÚthetaÚtÚellipser   r   r    Útest_corner_center:   s<   


ÿ


rC   c               	   C   sÜ  t ddddd} t|  ¡ ddgƒ t|  ¡ ddgƒ t ddddd} t|  ¡ | jd | jd t d	¡  | jd | jd  f| jd | jd t d	¡  | jd | jd  fgƒ t|  ¡ | jd | jd  | jd | jd t d	¡  f| jd | jd  | jd | jd t d	¡  fgƒ t 	|  ¡ ¡\}}tj
 || d | j¡ t 	|  ¡ ¡\}}tj
 || d | j¡ t d
dddd} t 	|  ¡ ¡\}}tj
 || d | j¡ t 	|  ¡ ¡\}}tj
 || d | j¡ d S )N©r   r   r   ©r   r;   r<   Úangle©ç        rH   r$   r   é   é   é   )gj¼t“@g+‡ÙÎ·%Àg…ëQ¸@g®Gáz®ÿ?gR¸…ë1Q@)r   r   Úget_verticesÚget_co_verticesÚcenterr;   r7   Úsqrtr<   ÚarrayÚtesting)rB   Úv1Úv2r   r   r    Útest_ellipse_verticesj   sN   þþþþûþþþûþrT   c            	      C   s    t  ddg¡} d}d}d}t| |||d}t| ||ƒ}t j| d }t  t  |¡t  |¡ gt  |¡t  |¡gg¡}t  || ¡ |  ¡j	|  }t
| ¡ |ƒ d S )Nç      ð?ç       @r$   rK   g      >@©rF   ç     €f@)r7   Úasarrayr   ÚpirP   ÚcosÚsinÚinnerÚ	get_vertsÚTr   )	r:   r;   r<   rF   Úrect1Úrect2Ú	angle_radÚrotation_matrixÚ	new_vertsr   r   r    Útest_rotate_rect   s   ÿre   Úpng)Ú
extensionsc           
      C   sŽ   |   ¡ }|  ¡ }d}d\}}d}t||||d}| |¡ | ¡ |ks%J ‚t|||ƒ}	|	 ¡ dks3J ‚| |	¡ |	 |¡ |	 ¡ |ksEJ ‚d S )NrD   ©r   r   rI   rW   r   )Úadd_subplotr   Ú	add_patchÚ	get_angler3   )
Úfig_testÚfig_refÚax_testÚax_refr:   r;   r<   rF   Úrect_refÚ	rect_testr   r   r    Útest_rotate_rect_drawµ   s   


rr   c              	   C   s  |   ¡ }|  ¡ }d}d\}}t|||dddddgfd}t|||dddg d	¢fd}| ¡ dddgfks6J ‚| ¡ dg d	¢fksBJ ‚| |¡ | |¡ t|||dddddgfd}	t|||dddddgfd}
|	 ¡ dddgfkstJ ‚|
 ¡ dddgfks€J ‚| |	¡ | |
¡ d S )
N©çš™™™™™¹?rt   )çš™™™™™é?ru   rK   Úbr   é   )Ú	linewidthÚ	edgecolorÚ	linestyleÚr)r   rw   rw   r   )ri   r   Úget_linestylerj   )rl   rm   rn   ro   r:   r;   r<   rp   Ú	rect_ref2rq   Ú
rect_test2r   r   r    Útest_dash_offset_patch_drawÊ   s0   
ÿ
ÿ


ÿ
ÿ
r   c                  C   sH   t dddƒ ¡ d d… } t dddƒ ¡ d d… }tt |dd¡| ƒ d S )	N)éýÿÿÿéþÿÿÿrK   r$   éÿÿÿÿrD   r€   r   r   )r   r^   r   r7   Úroll)Úpos_verticesÚneg_verticesr   r   r    Útest_negative_rectì   s   r†   Úclip_to_bboxc            	      C   sú   t  ¡ \} }| ddg¡ | ddg¡ tj d¡ ¡ }| jddg9  _| jddg8  _tj 	¡  ¡ }| jddg9  _| jdd	g7  _tj 
||¡}tj|d
ddd}| |¡ t ddgddgg¡}| |¡}tj|d
dddd}| |¡ d S )Niîÿÿÿr#   ijÿÿÿéd   r)   r"   é   é   içÿÿÿç      à?ÚcoralÚnone)ÚalphaÚ	facecolorry   iôÿÿÿg     `SÀé2   i’ÿÿÿÚgreenrJ   Úblack)rŽ   r   Úlwry   )ÚpltÚsubplotsÚset_xlimÚset_ylimÚmpathÚPathÚunit_regular_starÚdeepcopyÚverticesÚunit_circleÚmake_compound_pathÚmpatchesÚ	PathPatchrj   r4   r   r‡   )	ÚfigÚaxr   Úpath2ÚcombinedÚpatchÚbboxÚresult_pathÚresult_patchr   r   r    Útest_clip_to_bboxô   s(   ÿ


ÿr©   Úpatch_alpha_coloringT)Úremove_textc            	      C   sÂ   t j d¡} t j ¡ }t |j| jddd… g¡}t |j| jg¡}t  ||¡}t  |d |¡}t 	¡ }t
j|gddddd	}| |¡ tj|ddddd
}| |¡ | dd¡ | dd¡ dS )z†
    Test checks that the patch and collection are rendered with the specified
    alpha values in their facecolor and edgecolor.
    rw   Nr‚   r   r‰   Údashdot©r   r   r   r‹   ©r   r   r   g      è?©rx   Ú
linestylesr   ry   ©rx   rz   r   ry   r$   ©r˜   r™   rš   r   r7   Úconcatenaterœ   Úcodesr”   ÚaxesÚmcollectionsÚPathCollectionÚadd_collectionrŸ   r    rj   r–   r—   ©	ÚstarÚcircleÚvertsr´   Ú	cut_star1Ú	cut_star2r¢   Úcolr¥   r   r   r    Útest_patch_alpha_coloring  s*   
ý
ý
rÀ   Úpatch_alpha_overridec            	      C   sÆ   t j d¡} t j ¡ }t |j| jd d d… g¡}t |j| jg¡}t  ||¡}t  |d |¡}t 	¡ }t
j|gdddddd	}| |¡ tj|dddddd
}| |¡ | dd¡ | dd¡ d S )Nrw   r‚   r   r‰   r¬   ç      Ð?r­   r®   )rx   r°   rŽ   r   ry   )rx   rz   rŽ   r   ry   r$   r²   r¹   r   r   r    Útest_patch_alpha_override/  s.   
ü
ü
rÃ   Údefaultc                  C   s*   t jddddd} |  ¡ d dksJ ‚d S )NrD   r   r   )r   rŽ   r   )r”   ÚCircleÚget_facecolor)Úcr   r   r    Útest_patch_color_noneO  s   rÈ   Úpatch_custom_linestylec            	      C   sÄ   t j d¡} t j ¡ }t |j| jd d d… g¡}t |j| jg¡}t  ||¡}t  |d |¡}t 	¡ }t
j|gddgddd}| |¡ tj|ddddd	}| |¡ | dd
¡ | dd
¡ d S )Nrw   r‚   r   r‰   )r   )r‰   é   r"   rÊ   ©r   r   r   ©r   r   r   r¯   r±   r$   r²   r¹   r   r   r    Útest_patch_custom_linestyleW  s*   
ý
ý
rÍ   c            
      C   sÊ   t j d¡} t j ¡ }t |j| jd d d… g¡}t |j| jg¡}g d¢}t 	¡ \}}t
|ƒD ]\}}t  || |¡} tj| d|ddd}	| |	¡ q0| d|d g¡ | d|d g¡ |j ¡  d S )	Nrw   r‚   )ú-ú--z-.ú:ÚsolidÚdashedr¬   ÚdottedrK   rË   rÌ   r±   r   )r˜   r™   rš   r   r7   r³   rœ   r´   r”   r•   Ú	enumeraterŸ   r    rj   r–   r—   ÚcanvasÚdraw)
rº   r»   r¼   r´   r°   r¡   r¢   ÚiÚlsr¥   r   r   r    Útest_patch_linestyle_accentst  s"   
ýrÙ   c           	      C   sÌ   t j ¡ }|  ¡ }| ¡ }tg d¢ƒD ],\}}t  |j| |j¡}tj|d|ddd}| 	|¡ tj|ddddd}| 	|¡ q| 
d|d	 g¡ | d|d	 g¡ | 
d|d	 g¡ | d|d	 g¡ d S )
N)r   ÚNoneú Ú rK   rË   rÌ   r±   rÎ   r   r‚   r   )r˜   r™   r   ri   rÔ   rœ   r´   rŸ   r    rj   r–   r—   )	rl   rm   r»   rn   ro   r×   rØ   r   r¥   r   r   r    Útest_patch_linestyle_noneŽ  s*   
ý
ýrÝ   c                  C   s€   ddddddœ} dd„ |   ¡ D ƒ}tjd	i |¤Ž}|   ¡ D ] \}\}}}t||ƒ|ks-J ‚t||ƒ|ƒ t||ƒ|ks=J ‚qd S )
N)rD   rh   Ú
set_center)r‰   r)   Ú
set_radius)r$   rK   Ú	set_width)r   rI   Ú
set_theta1)é-   r   Ú
set_theta2)rN   r{   r;   Útheta1Útheta2c                 S   s   i | ]	\}}||d  “qS )r   r   )Ú.0ÚkÚvr   r   r    Ú
<dictcomp>¯  s    z'test_wedge_movement.<locals>.<dictcomp>r   )ÚitemsrŸ   ÚWedgeÚgetattr)Ú
param_dictÚ	init_argsÚwÚattrÚold_vÚnew_vÚfuncr   r   r    Útest_wedge_movement¨  s   üýrô   Úwedge_rangeÚx86_64g;ßO—n‚?)r«   Útolc            	   
   C   sº   t  ¡ } d}ddgddg||d gddgd	d
gddgddgddgddgg	}t|ƒD ]%\}\}}|d }|d }tj|d |d fd||dddd}|  |¡ q)|  dd¡ |  dd¡ d S )NgÁoÛàÍ‚@gœ‚Þ,(J@g§ 7
m@gü¶Þ,(J@g¿mƒ7
m@rX   r   éh  r*   iÂ  iLÿÿÿé´   i|  râ   é.   rK   r   r   rç   )r   ry   r“   r   r)   r+   )r”   rµ   rÔ   rŸ   rë   Ú
add_artistr–   r—   )	r¢   Út1Úargsr×   rä   rå   ÚxÚyÚwedger   r   r    Útest_wedge_range¸  s*   
ø
ÿr  c                  C   s6  t jddd} t| ƒdksJ ‚t jddddd} t| ƒdks J ‚t jddddd} t| ƒd	ks1J ‚t jddddd
d} t| ƒdksCJ ‚t jddddd
dd} d}t| ƒ|ksXJ ‚t jddddd} d}t| ƒ|kskJ ‚t jdddd} t| ƒdks{J ‚t j	dddd} t| ƒdks‹J ‚t j
dddd} t| ƒdks›J ‚tjg d¢dd}t  |¡} t| ƒdks±J ‚t  t d ¡¡} t| ƒd!ksÁJ ‚ddgddgddgg}t  |¡} t| ƒd"ksÙJ ‚t j|d#} t| ƒd$d%… d&ksëJ ‚t  dd¡} t| ƒd'ksùJ ‚t  ddd(¡} t| ƒd)ks	J ‚t  | dd¡}t|ƒd*ksJ ‚d$S )+z©
    Check that patches have nice and working `str` representation.

    Note that the logic is that `__str__` is defined such that:
    str(eval(str(p))) == str(p)
    ©r   r$   rK   )r   ÚradiuszCircle(xy=(1, 2), radius=3)rJ   r‰   rE   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)rw   )rN   r{   rä   rå   r;   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)rÊ   )r   r;   r<   rF   rä   rå   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))rK   rJ   r   r$   )r   r{   r;   rF   z.Annulus(xy=(1, 2), r=(3, 4), width=1, angle=2)r#   )r  z3RegularPolygon((1, 2), 20, radius=5, orientation=0))r   r  Ú
resolutionz.CirclePolygon((1, 2), radius=5, resolution=20))r;   r<   z)FancyBboxPatch((1, 2), width=3, height=4))r  ©r$   r$   r  Tr   zPathPatch3((1, 2) ...)©r   r$   z
Polygon0()zPolygon3((1, 2) ...))r   Né   zFancyArrowPatch(Path(array(zFancyArrowPatch((1, 2)->(3, 4))ÚdatazConnectionPatch((1, 2), (3, 4))z'Shadow(ConnectionPatch((1, 2), (3, 4))))rŸ   rÅ   Ústrr   r   rë   r   r   ÚRegularPolygonÚCirclePolygonÚFancyBboxPatchr˜   r™   r    r   r7   Úemptyr	   ÚConnectionPatchÚShadow)r   Úexpectedr   r  Úsr   r   r    Útest_patch_strÖ  sH   

r  Úmulti_color_hatch)r«   Ústylec               	   C   sÖ   t  ¡ \} }| tdƒtddƒ¡}t|ƒD ]\}}| d¡ | d|› ¡ | d¡ q| ¡  | 	d¡ tdƒD ]/}t
j dd|› i¡ t|d	 dfd
dddd}W d   ƒ n1 s^w   Y  | |¡ q9d S )Nr‰   r   rw   r   ÚCú/Fzhatch.colorgš™™™™™Ù?ru   z//)ÚhatchÚfc)r”   r•   ÚbarÚrangerÔ   Úset_facecolorÚset_edgecolorÚ	set_hatchÚautoscale_viewÚ	autoscaleÚmplr  Úcontextr   rj   )r¡   r¢   Úrectsr×   r>   r{   r   r   r    Útest_multi_color_hatch  s   

ÿýr#  zunits_rectangle.pngc                  C   s’   dd l m  m}  |  ¡  t d| j d| j fd| j d| j ¡}t ¡ \}}| 	|¡ | 
d| j d| j g¡ | d| j d| j g¡ d S )	Nr   r‰   rw   r   r$   rJ   rÊ   r+   )Úmatplotlib.testing.jpl_unitsrQ   Ú	jpl_unitsÚregisterrŸ   r   Úkmr”   r•   rj   r–   r—   )ÚUr   r¡   r¢   r   r   r    Útest_units_rectangle)  s   *
r)  zconnection_patch.pngÚmpl20gú~j¼t“˜?)r  r«   r÷   c               	   C   sl   t  dd¡\} \}}tjdddd||dd}| |¡ d}d	}d
}| ¡ }tj||||dd}| |¡ d S )Nr   r$   rs   )çÍÌÌÌÌÌì?r+  r  ú->)ÚxyAÚxyBÚcoordsAÚcoordsBÚaxesAÚaxesBÚ
arrowstyle)g333333ã?rU   )rH   çš™™™™™É?zaxes fractionrÎ   )r-  r.  r/  r0  r3  )r”   r•   rŸ   r  rû   Úget_yaxis_transform)r¡   Úax1Úax2Úconr-  r.  r/  r0  r   r   r    Útest_connection_patch6  s   ý

ÿr9  c              	   C   sŽ   |   dd¡\}}tjdd|ddddd	}|  |¡ |  dd¡\}}|j}tjd
 tjd< tjdd||jd |jd fdddd	}| |¡ d S )Nr   r$   ©ç333333Ó?r4  r  ©iâÿÿÿiìÿÿÿúfigure pixelsr,  r‰   ©r-  r/  r1  r.  r0  r3  ÚshrinkBú
figure.dpiúsavefig.dpirI   r#   )	r•   rŸ   r  rû   r¦   r”   r   r;   r<   )rl   rm   r6  r7  r8  Úbbr   r   r    Útest_connection_patch_figJ  s    ý
ýrC  c           	   	   C   sÈ   d}d}|   dd¡\}}tj|d||dddd	}|  |¡ tjd
 tjd< |  dd¡\}}|d |jd  |d |jd  f}|d |jd  |d |jd  f}tj|d||dddd	}| |¡ d S )Nr:  r<  r   r$   zaxes pointszfigure pointsr,  r‰   r>  r@  rA  r   éH   zaxes pixelsr=  )r•   rŸ   r  rû   r”   r   Údpi)	rl   rm   ÚxyA_ptsÚxyB_ptsr6  r7  r8  ÚxyA_pixÚxyB_pixr   r   r    Ú"test_connection_patch_pixel_pointsa  s"   
þ
$$
þrJ  c                  C   sX   ddl m } m} | ddddddƒ}|dd}t |df|d¡}t ¡ \}}| |¡ d S )Nr   )ÚdatetimeÚ	timedeltaéá  r   é   )Úseconds)rK  rL  rŸ   r   r”   r•   rj   )rK  rL  ÚstartÚdeltar¥   r¡   r¢   r   r   r    Útest_datetime_rectanglew  s   
rR  c                  C   s¨   ddl m }  | ddddddƒ}| dddƒ}t t¡ t |df|d¡ W d   ƒ n1 s.w   Y  t t¡ t d|fd|¡ W d   ƒ d S 1 sMw   Y  d S )Nr   ©rK  rM  r   i²  r‰   )rK  ÚpytestÚraisesÚ	TypeErrorrŸ   r   )rK  rP  Údt_deltar   r   r    Útest_datetime_datetime_failsƒ  s   ÿ"ÿrX  c                     sz   t  ddd¡‰ g d¢} ˆ  ¡ ‰ˆ  ¡ ‰ˆ  d ¡‰t ‡‡‡fdd„| D ƒ¡}t ‡ fdd„| D ƒ¡}t ||k¡s;J ‚d S )N©r‹   r‹   r‹   rU   ©)rH   r‹   )r4  r‹   )rÂ   r‹   rY  c                    s   g | ]	}ˆ   |ˆˆ¡‘qS r   ©Úcontains_point©ræ   Úpoint)r   r  r9   r   r    Ú
<listcomp>–  s    þþz'test_contains_point.<locals>.<listcomp>c                    s   g | ]}ˆ   |¡‘qS r   r[  r]  )Úellr   r    r_  ™  s    )rŸ   r   Úget_pathÚget_transformÚ_process_radiusr7   rP   Úall)Úpointsr  Úresultr   )r`  r   r  r9   r    Útest_contains_point  s   
þrg  c                  C   s^   t  ddd¡} g d¢}|  ¡ }|  ¡ }|  d ¡}| |||¡}|  |¡}t ||k¡s-J ‚d S )NrY  r‹   rU   rZ  )rŸ   r   ra  rb  rc  Úcontains_pointsr7   rd  )r`  re  r   r9   r  r  rf  r   r   r    Útest_contains_points  s   

ri  c                 C   sæ   t  ddg¡}t  ddg¡}dtjd< |  ¡ }tj|ddd}tj||d |d	 d
}| |¡ | |¡ | ¡ }tj|ddd}tj||j	d |  ddt  
t | ¡ ¡¡d t  
t | ¡ ¡¡d dd}| |¡ | |¡ d S )Nr4  r;  rt   ÚfigurerA  r‹   )r   r;   r<   r   r   )ÚoxÚoyrD  )r   r;   r<   r  ÚecrŽ   )r7   rP   r”   r   r•   rŸ   r   r  rj   rE  rY   ÚmcolorsÚto_rgbrÆ   )rl   rm   r   ÚdxyÚa1r>   ÚshadowÚa2r   r   r    Útest_shadow©  s$   


ü
rt  c                  C   s:   ddl m }  | dddƒ}t ¡ \}}td|fd|fƒ}d S )Nr   rS  iÐ  r   ç{®Gáz„?)rK  r”   r•   r	   )rK  Údtimer¡   r¢   Úarrowr   r   r    Útest_fancyarrow_unitsÂ  s   rx  c                  C   sè   t  ¡ \} }|jdddddddd}t 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¡}t |t |jd¡¡s<J ‚t 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¡}|jdddddddd t |t |jd¡¡srJ ‚d S )Nr   r"   r‰   r   r‹   )Úhead_lengthÚ
head_widthr;   g®Gáz+@g33333³$@gÍÌÌÌÌL#@g\Âõ(\$@g¤p=
×£#@g
×£p=
Ç?g
×£p=
Ç¿r$   gö(\Âµ0@g®Gáz”.@g\Âõ(\û?gÂõ(\Ò?é   )rþ   rÿ   ÚdxÚdyr;   rz  ry  )	r”   r•   rw  r7   rP   ÚallcloseÚroundr¼   Úset_data©r¡   r¢   rw  Ú	expected1Ú	expected2r   r   r    Útest_fancyarrow_setdataÊ  s:   ùÿ
ùÿ
ÿr„  zlarge_arc.svg)r  c                  C   s”   t  dd¡\} \}}d}d}d}||fD ]}t||f||ddd}| |¡ | ¡  | d¡ q| d	d
¡ | dd¡ | dd¡ | dd¡ d S )Nr   r$   éÒ   i½÷ÿÿi¥  rç   )r“   ÚcolorÚequalrÊ   r)   r‰   rw   iXžÿÿiPF  ià±ÿÿiÈ  )r”   r•   r   rj   Úset_axis_offÚ
set_aspectr–   r—   )r¡   r6  r7  rþ   rÿ   Údiameterr¢   Úar   r   r    Útest_large_arcé  s   
rŒ  zall_quadrants_arcs.svgc                  C   sT  t jddddd\} }d}d}d}d}t| ¡ |ƒD ]\}\}}d	}	td
d
t d¡ f||fƒD ]I\}
}t||	dD ]:\}\}}t|| |
 || |
 f|| || dd|› d| t t 	||¡¡d d|› d|› d	}| 
|¡ q:|d }	q0| | d |d ¡ | | d |d ¡ |jd	dd |jd	dd | ¡  | d¡ qd S )Nr$   F)r"   r"   )ÚsqueezeÚfigsizei€–˜ ))r‚   r‚   )r‚   r   rh   )r   r‚   ))r   r   )r   r   )r   r‚   )r‚   r   )r  )r$   rt   )r$   ru  )r$   gü©ñÒMbP?r   g§èH.ÿï?)rP  rJ   r  r   rø   zbig )r“   r†  ÚzorderrF   ÚlabelÚgidi   rç   )r†  r‡  )r”   r•   ÚzipÚravelr7   rO   rÔ   r   Úrad2degÚarctan2rj   r–   r—   ÚaxhlineÚaxvlinerˆ  r‰  )r¡   Úax_arrÚscaleÚdiag_centersÚon_axis_centersÚskewsr¢   ÚsxÚsyrç   ÚprescaleÚcentersÚjÚx_signÚy_signr‹  r   r   r    Útest_rotated_arcsý  sB   ÿ

ÿö
çr¤  c                   C   sF   t jtdd tdddddd W d   ƒ d S 1 sw   Y  d S )NzGot unknown shape: 'foo'©Úmatchr   r4  Úfoo)Úshape)rT  rU  Ú
ValueErrorr
   r   r   r   r    Útest_fancyarrow_shape_error"  s   "ÿrª  z
fmt, match))r§  zUnknown style: 'foo')z	Round,fooz%Incorrect style argument: 'Round,foo'c                 C   s<   t jt|d t| ƒ W d   ƒ d S 1 sw   Y  d S )Nr¥  )rT  rU  r©  r   )Úfmtr¦  r   r   r    Útest_boxstyle_errors'  s   
"ÿr¬  Úannulus)Úbaseline_imagesrg   c               
   C   sV   t  ¡ \} }tddddd}tddddd	d
ddd}| |¡ | |¡ | d¡ d S )NrY  r4  çš™™™™™©?Úg©r  ©r‹   r;  rt   râ   Úmrv   r‹   Úxxx©r  rm  rŽ   r  r‡  )r”   r•   r   rj   r‰  ©r¡   r¢   Úcirr`  r   r   r    Útest_annulus0  s   
ÿ

r¸  c               
   C   s€   t  ¡ \} }tddddd}tddddd	d
ddd}| |¡ | |¡ | d¡ d|_d|_d|_d|_d|_d|_d|_d S )NrG   r4  ru  r°  r±  r  rt   r   r³  rv   r‹   r´  rµ  r‡  rY  r¯  r²  râ   )	r”   r•   r   rj   r‰  rN   Úradiir;   rF   r¶  r   r   r    Útest_annulus_setters<  s   
ÿ



rº  c               
   C   s¸   t  ¡ \} }tddddd}tddddd	d
ddd}| |¡ | |¡ | d¡ d|_| d¡ | d¡ |jdks=J ‚d|_	d|_| d¡ | d¡ |jdksTJ ‚d|_	d|_
d S )NrG   r4  ru  r°  r±  r  rt   r   r³  rv   r‹   r´  rµ  r‡  rY  )r4  r4  r¯  r;  r²  râ   )r”   r•   r   rj   r‰  rN   Úset_semimajorÚset_semiminorr¹  r;   rF   r¶  r   r   r    Útest_annulus_setters2Q  s&   
ÿ







r½  c                  C   s8   ddg} t | | gƒj}t t| gƒ ¡ j|k¡sJ ‚d S )Nr   )r   Úextentsr7   rd  r   Úget_extents)r^  Úcorrect_extentsr   r   r    Útest_degenerate_polygonj  s   "rÁ  Úkwarg)ry   r   c                 C   sJ   t jtdd tdddi| di¤Ž W d   ƒ d S 1 sw   Y  d S )NzQSetting the 'color' property will override the edgecolor or facecolor properties.r¥  r†  r’   r   )rT  ÚwarnsÚUserWarningr   )rÂ  r   r   r    Útest_color_override_warningp  s
   ÿ"ýrÅ  c                  C   s"   t t d¡ƒ} |  ¡ g ksJ ‚d S )Nr  )r   r7   Úzerosr^   )Úpolyr   r   r    Útest_empty_vertsx  s   rÈ  c                  C   sN   t ƒ } |  td  ¡ |  ¡ td  ksJ ‚|  d ¡ |  ¡ td ks%J ‚d S )Nzpatch.antialiased)r   Úset_antialiasedr   Úget_antialiased©r¥   r   r   r    Útest_default_antialiased}  s
   
rÌ  c                  C   s.   t ƒ } |  d¡ |  d ¡ |  ¡ dksJ ‚d S )NrÏ   rÑ   )r   Úset_linestyler|   rË  r   r   r    Útest_default_linestyle‡  s   

rÎ  c                  C   ó   t ƒ } |  ¡ dksJ ‚d S )NÚbutt)r   Úget_capstylerË  r   r   r    Útest_default_capstyleŽ  ó   rÒ  c                  C   rÏ  )NÚmiter)r   Úget_joinstylerË  r   r   r    Útest_default_joinstyle“  rÓ  rÖ  Úautoscale_arcÚsvg)rg   r  r«   c                  C   s²   t jdddd\} }tddddddgtd	d
ddddgtd	d
ddddtd	dddddtd	dddddtd	dddddgf}t||ƒD ]\}}|D ]}| |¡ qJ| ¡  qDd S )Nr   rK   )rJ   r   )rŽ  rD   r   r*   )rä   rå   rY  ç      ø?r‹   r"   r#   g      @én   éx   ç      @r…  éÜ   g      @i6  i@  )r”   r•   r   r’  rj   r  )r¡   ÚaxsÚ	arc_listsr¢   ÚarcsÚarcr   r   r    Útest_autoscale_arc˜  s   ýý
ýrâ  )rf   rØ  ÚpdfÚepsc                 C   sb   t ddgdddddd}t ddgdddddd}tj|gddd	}| ¡  |¡ |  ¡  |¡ d S )
Nr‹   r   r   é<   r#   ©rä   rå   rF   r   rç   )r   Ú
facecolorsÚ
edgecolors)r   r¶   ÚPatchCollectionr•   rj   r¸   )rl   rm   Úarc1Úarc2r¿   r   r   r    Útest_arc_in_collectionª  s   
ÿrì  c                 C   sd   t ddgdddddd}t ddgdddddd}| ¡  |¡ |  ¡  |¡ | d¡ | d¡ d S )	Nr‹   r   r   rå  r#   ræ  rÙ  r"   )r   r•   rj   rà   r3   )rl   rm   rê  rë  r   r   r    Útest_modifying_arc´  s   
rí  c                  C   sà   t  ¡ \} }tj dddd¡}t 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¡}t |t | 	¡ d¡¡s:J ‚t 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¡}|j
ddddd t |t | 	¡ d¡¡snJ ‚d S )Nr$   r   r"   gffffffþ?rH   gÍÌÌÌÌÌ @g       €g       @gffffff@rV   g      $@g333333û?gö(\ÂõØ?g{®Gáz¤?g…ëQ¸…ã?g{®Gáz¤¿g®Gáz@gq=
×£p@gìQ¸…ë	@g®Gáz@rÜ  g{®Gáz@g…ëQ¸@gR¸…ëQ@gÃõ(\Â@r‹   rK   r)   g333333ó?)rþ   r|  r}  r;   )r”   r•   r   r   ÚArrowr7   rP   r~  r  r^   r€  r  r   r   r    Útest_arrow_set_data¾  s6   ùÿ
ùÿ
 rï  )rf   rã  rØ  rä  c              	   C   s²   |   ¡ }|  ¡ }d}t d|i¡ | tjddddd¡ W d   ƒ n1 s(w   Y  | tjddddd¡ |jd  |¡ |jd  ¡ |ksLJ ‚|jd  ¡ |ksWJ ‚d S )NrV   zhatch.linewidthrD   r   rþ   )r  r   )	ri   r”   Ú
rc_contextrj   rŸ   r   r   Úset_hatch_linewidthÚget_hatch_linewidth)rl   rm   rn   ro   r“   r   r   r    Ú test_set_and_get_hatch_linewidthÛ  s   ÿró  )\Ú__doc__ÚplatformÚnumpyr7   Únumpy.testingr   r   rT  Ú
matplotlibr   Úmatplotlib.patchesr   r   r   r   r   r	   r
   r   r   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.transformsr   Úmatplotlib.pyplotÚpyplotr”   r   r¶   r   rn  r   rŸ   r   r˜   r   r4   r   r!   rC   rT   re   rr   r   r†   r©   rÀ   rÃ   r  r!  rÈ   rÍ   rÙ   rÝ   rô   Úmachiner  r  r#  r)  r9  rC  rJ  rR  rX  rg  ri  rt  rx  r„  rŒ  r¤  rª  ÚmarkÚparametrizer¬  r¸  rº  r½  rÁ  rÅ  rÈ  rÌ  rÎ  rÒ  rÖ  râ  rì  rí  rï  ró  r   r   r   r    Ú<module>   s¶    , %03



!







ÿ
@


ÿ








$





ÿ

	
	