o
    l’×i{s  ã                   @   sn  d 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l&Z&e&j'dk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„ ƒZ0edgddd d!„ ƒZ1ej2 3d"¡d#d$„ ƒZ4ed%gddd&d'„ ƒZ5d(d)„ Z6edgdd*d+„ ƒZ7d,d-„ Z8ed.gde(rËd/ndd0d1d2„ ƒZ9d3d4„ Z:ed5gdd"d6d7d8„ ƒZ;ed9gƒd:d;„ ƒZ<ed<gd=dd>d?d@„ ƒZ=edgddAdB„ ƒZ>dCdD„ Z?dEdF„ Z@dGdH„ ZAdIdJ„ ZBedgddKdL„ ƒZCdMdN„ ZDdOdP„ ZEedQgd=dRdSdT„ ƒZFedUgd=dRdVdW„ ƒZGdXdY„ ZHejI JdZd[¡d\d]„ ƒZKed^gdgd_d`da„ ƒZLed^gdgd_dbdc„ ƒZMed^gdgd_ddde„ ƒZNdfdg„ ZOejI Jdhdi¡djdk„ ƒZPdldm„ ZQdndo„ ZRdpdq„ ZSdrds„ ZTdtdu„ ZUedvgddwgd=ddxdydz„ ƒZVeg d{¢dd|d}„ ƒZWeg d{¢dd~d„ ƒZXd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ÚrcParamsÚwin32c                  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    ú[/home/ubuntu/SoloSpeech/.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@)ç      #@r0   )r1   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<   


ÿ


rD   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ç      ð?g       @r%   é   g      >@©Úangleç     €f@)r8   Úasarrayr   ÚpiÚarrayÚcosÚsinÚinnerÚ	get_vertsÚTr   )	r;   r<   r=   rH   Úrect1Úrect2Ú	angle_radÚrotation_matrixÚ	new_vertsr    r    r!   Útest_rotate_rectk   s   ÿrW   Úpng)Ú
extensionsc           
      C   sŽ   |   ¡ }|  ¡ }d}d\}}d}t||||d}| |¡ | ¡ |ks%J ‚t|||ƒ}	|	 ¡ dks3J ‚| |	¡ |	 |¡ |	 ¡ |ksEJ ‚d S )N©r   r   ©r   r   é   rG   r   )Úadd_subplotr   Ú	add_patchÚ	get_angler4   )
Úfig_testÚfig_refÚax_testÚax_refr;   r<   r=   rH   Úrect_refÚ	rect_testr    r    r!   Útest_rotate_rect_drawƒ   s   


rf   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©çš™™™™™¹?rh   )çš™™™™™é?ri   rF   Úbr   é   )Ú	linewidthÚ	edgecolorÚ	linestyleÚr)r   rk   rk   r   )r]   r   Úget_linestyler^   )r`   ra   rb   rc   r;   r<   r=   rd   Ú	rect_ref2re   Ú
rect_test2r    r    r!   Útest_dash_offset_patch_draw˜   s0   
ÿ
ÿ


ÿ
ÿ
rs   c                  C   sH   t dddƒ ¡ d d… } t dddƒ ¡ d d… }tt |dd¡| ƒ d S )	N)éýÿÿÿéþÿÿÿrF   r%   éÿÿÿÿrZ   rt   ru   r   )r   rP   r   r8   Úroll)Úpos_verticesÚneg_verticesr    r    r!   Útest_negative_rectº   s   rz   Ú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Ú	facecolorrm   iôÿÿÿg     `SÀé2   i’ÿÿÿÚgreené   Úblack)r‚   rƒ   Úlwrm   )ÚpltÚsubplotsÚset_xlimÚset_ylimÚmpathÚPathÚunit_regular_starÚdeepcopyÚverticesÚunit_circleÚmake_compound_pathÚmpatchesÚ	PathPatchr^   r5   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g¡ | ddg¡ dS )z†
    Test checks that the patch and collection are rendered with the specified
    alpha values in their facecolor and edgecolor.
    rk   Nrv   r   r}   Údashdot©r   r   r   r   ©r   r   r   g      è?©rl   Ú
linestylesrƒ   rm   ©rl   rn   rƒ   rm   r%   ©r   rŽ   r   r’   r8   Úconcatenater‘   Úcodesr‰   ÚaxesÚmcollectionsÚPathCollectionÚadd_collectionr”   r•   r^   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g¡ | ddg¡ d S )Nrk   rv   r   r}   r¡   ç      Ð?r¢   r£   )rl   r¥   r‚   rƒ   rm   )rl   rn   r‚   rƒ   rm   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 )NrZ   r   r   )rƒ   r‚   r   )r‰   ÚCircleÚget_facecolor)Úcr    r    r!   Útest_patch_color_none  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
g¡ | dd
g¡ d S )Nrk   rv   r   r}   )r   )r}   é   r#   r¿   ©r   r   r   ©r   r   r   r¤   r¦   r%   r§   r®   r    r    r!   Útest_patch_custom_linestyle%  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 )	Nrk   rv   )ú-ú--z-.ú:ÚsolidÚdashedr¡   ÚdottedrF   rÀ   rÁ   r¦   r   )r   rŽ   r   r’   r8   r¨   r‘   r©   r‰   rŠ   Ú	enumerater”   r•   r^   r‹   rŒ   ÚcanvasÚdraw)
r¯   r°   r±   r©   r¥   r–   r—   ÚiÚlsrš   r    r    r!   Útest_patch_linestyle_accentsB  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ú Ú rF   rÀ   rÁ   r¦   rÃ   r   rv   r   )r   rŽ   r’   r]   rÉ   r‘   r©   r”   r•   r^   r‹   rŒ   )	r`   ra   r°   rb   rc   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)rZ   r[   Ú
set_center)r}   r*   Ú
set_radius)r%   rF   Ú	set_width)r   r\   Ú
set_theta1)é-   r„   Ú
set_theta2)Úcenterro   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_movementv  s   üýrê   Úwedge_rangegffffffú?)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g¡ |  ddg¡ d S )NgÁoÛàÍ‚@gœ‚Þ,(J@g§ 7
m@gü¶Þ,(J@g¿mƒ7
m@rI   r   éh  r+   iÂ  iLÿÿÿé´   i|  r×   é.   rF   r   r   rÝ   )rƒ   rm   rˆ   ru   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%   rF   )r   ÚradiuszCircle(xy=(1, 2), radius=3)r†   r}   )r   r<   r=   rH   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)rk   )rÙ   ro   rÚ   rÛ   r<   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)r¿   )r   r<   r=   rH   rÚ   rÛ   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))rF   r†   r   r%   )r   ro   r<   rH   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   r8   Ú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   rk   r   zC{}ú/Fzhatch.colorgš™™™™™Ù?ri   z//)ÚhatchÚfc)r‰   rŠ   ÚbarÚrangerÉ   Úset_facecolorÚset_edgecolorÚformatÚ	set_hatchÚautoscale_viewÚ	autoscaleÚmplr	  Úcontextr   r^   )r–   r—   ÚrectsrÌ   r?   ro   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}   rk   r   r%   r†   r¿   r,   )Úmatplotlib.testing.jpl_unitsÚtestingÚ	jpl_unitsÚregisterr”   r   Úkmr‰   rŠ   r^   r‹   rŒ   )ÚUr   r–   r—   r    r    r!   Útest_units_rectangle÷  s   *
r  zconnection_patch.pngÚmpl20)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%   rg   )çÍÌÌÌÌÌì?r!  rý   ú->)ÚxyAÚxyBÚcoordsAÚcoordsBÚaxesAÚaxesBÚ
arrowstyle)g333333ã?rE   )ç        çš™™™™™É?zaxes fractionrÃ   )r#  r$  r%  r&  r)  )r‰   rŠ   r”   r  rð   Úget_yaxis_transform)r–   Úax1Úax2Úconr#  r$  r%  r&  r    r    r!   Útest_connection_patch  s   ý

ÿr0  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Ó?r+  rý   )iâÿÿÿiìÿÿÿzfigure pixelsr"  r}   )r#  r%  r'  r$  r&  r)  ÚshrinkBz
figure.dpiúsavefig.dpir\   r$   )	rŠ   r”   r  rð   r›   r‰   r   r<   r=   )r`   ra   r-  r.  r/  Úbbr    r    r!   Útest_connection_patch_fig  s    ý
ýr5  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)r6  r7  r”   r   r‰   rŠ   r^   )r6  r7  ÚstartÚdeltarš   r–   r—   r    r    r!   Útest_datetime_rectangle.  s   
r=  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   ©r6  r8  r   i²  r}   )r6  ÚpytestÚraisesÚ	TypeErrorr”   r   )r6  r;  Údt_deltar    r    r!   Útest_datetime_datetime_fails:  s   ÿ"ÿrC  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   rE   ©)r*  r   )r+  r   )r·   r   rD  c                    s   g | ]	}ˆ   |ˆˆ¡‘qS r    ©Úcontains_point©rÜ   Úpoint)r   rø   r:   r    r!   Ú
<listcomp>M  s    þþz'test_contains_point.<locals>.<listcomp>c                    s   g | ]}ˆ   |¡‘qS r    rF  rH  )Úellr    r!   rJ  P  s    )r”   r   Úget_pathÚget_transformÚ_process_radiusr8   rL   Úall)Úpointsr  Úresultr    )rK  r   rø   r:   r!   Útest_contains_pointG  s   
þrR  c                  C   s^   t  ddd¡} g d¢}|  ¡ }|  ¡ }|  d ¡}| |||¡}|  |¡}t ||k¡s-J ‚d S )NrD  r   rE   rE  )r”   r   rL  rM  rN  Úcontains_pointsr8   rO  )rK  rP  r   r:   rø   r  rQ  r    r    r!   Útest_contains_pointsT  s   

rT  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 )Nr+  r1  rh   Úfigurer3  r   )r   r<   r=   r   r   )ÚoxÚoyéH   )r   r<   r=   r  Úecr‚   )r8   rL   r‰   r   rŠ   r”   r   r  r^   ÚdpirJ   ÚmcolorsÚto_rgbr»   )r`   ra   r   ÚdxyÚa1r?   ÚshadowÚa2r    r    r!   Útest_shadow`  s$   


ü
ra  c                  C   s:   ddl m }  | dddƒ}t ¡ \}}td|fd|fƒ}d S )Nr   r>  iÐ  r   ç{®Gáz„?)r6  r‰   rŠ   r	   )r6  Údtimer–   r—   Úarrowr    r    r!   Útest_fancyarrow_unitsy  s   re  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<   rg  rf  )	r‰   rŠ   rd  r8   rL   ÚallcloseÚroundr±   Úset_data)r–   r—   rd  Ú	expected1Ú	expected2r    r    r!   Útest_fancyarrow_setdata  s:   ùÿ
ùÿ
ÿrp  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}   rk   iXžÿÿiPF  ià±ÿÿiÈ  )r‰   rŠ   r   r^   Úset_axis_offÚ
set_aspectr‹   rŒ   )r–   r-  r.  ró   rô   Údiameterr—   Úar    r    r!   Útest_large_arc   s   
rx  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€–˜ ))rv   rv   )rv   r   r[   )r   rv   ))r   r   )r   r   )r   rv   )rv   r   )rú   )r%   rh   )r%   rb  )r%   gü©ñÒMbP?r   g§èH.ÿï?)r;  r†   ÚCr   rí   zbig )rˆ   rr  ÚzorderrH   ÚlabelÚgidi   rÝ   )rr  rs  )r‰   rŠ   ÚzipÚravelr8   ÚsqrtrÉ   r   Úrad2degÚarctan2r^   r‹   rŒ   ÚaxhlineÚaxvlinert  ru  )r–   Úax_arrÚscaleÚdiag_centersÚon_axis_centersÚskewsr—   ÚsxÚsyrÝ   ÚprescaleÚcentersÚjÚx_signÚy_signrw  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   r+  Úfoo)Úshape)r?  r@  Ú
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“  )r?  r@  r—  r   )Úfmtr”  r    r    r!   Útest_boxstyle_errorsÞ  s   
"ÿrš  Úannulus)Úbaseline_imagesrY   c               
   C   sV   t  ¡ \} }tddddd}tddddd	d
ddd}| |¡ | |¡ | d¡ d S )NrD  r+  çš™™™™™©?Úg©r  ©r   r1  rh   r×   Úmrj   r   Úxxx©r  rY  r‚   r  rs  )r‰   rŠ   r   r^   ru  ©r–   r—   ÚcirrK  r    r    r!   Útest_annulusç  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 )N©r*  r*  r+  rb  rž  rŸ  r÷   rh   r   r¡  rj   r   r¢  r£  rs  rD  r  r   r×   )	r‰   rŠ   r   r^   ru  rÙ   Úradiir<   rH   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 )Nr§  r+  rb  rž  rŸ  r÷   rh   r   r¡  rj   r   r¢  r£  rs  rD  )r+  r+  r  r1  r   r×   )r‰   rŠ   r   r^   ru  rÙ   Úset_semimajorÚset_semiminorr¨  r<   rH   r¤  r    r    r!   Útest_annulus_setters2  s&   
ÿ







r¬  c                  C   s8   ddg} t | | gƒj}t t| gƒ ¡ j|k¡sJ ‚d S )Nr   )r   Úextentsr8   rO  r   Úget_extents)rI  Úcorrect_extentsr    r    r!   Útest_degenerate_polygon!  s   "r°  Úkwarg)rm   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“  rr  r‡   r    )r?  ÚwarnsÚUserWarningr   )r±  r    r    r!   Útest_color_override_warning'  s
   ÿ"ýr´  c                  C   s"   t t d¡ƒ} |  ¡ g ksJ ‚d S )Nrû   )r   r8   ÚzerosrP   )Úpolyr    r    r!   Útest_empty_verts/  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_antialiased4  s
   
r»  c                  C   s.   t ƒ } |  d¡ |  d ¡ |  ¡ dksJ ‚d S )NrÄ   rÆ   )r   Úset_linestylerp   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_capstyleE  ó   rÁ  c                  C   r¾  )NÚmiter)r   Úget_joinstylerº  r    r    r!   Útest_default_joinstyleJ  rÂ  rÅ  Úautoscale_arcÚsvg)rY   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   rF   )r†   r   )rz  rZ   r   r+   )rÚ   rÛ   rD  ç      ø?r   r#   r$   g      @én   éx   g      @rq  éÜ   g      @i6  i@  )r‰   rŠ   r   r  r^   r  )r–   ÚaxsÚ	arc_listsr—   ÚarcsÚarcr    r    r!   Útest_autoscale_arcO  s   ýý
ýrÐ  )rX   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Û   rH   r   rÝ   )r   Ú
facecolorsÚ
edgecolors)r   r«   ÚPatchCollectionrŠ   r^   r­   )r`   ra   Úarc1Úarc2r´   r    r    r!   Útest_arc_in_collectiona  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Š   r^   rÕ   r4   )r`   ra   rØ  rÙ  r    r    r!   Útest_modifying_arck  s   
rÛ  )YÚ__doc__Únumpyr8   Únumpy.testingr   r   r?  Ú
matplotlibr  Úmatplotlib.patchesr   r   r   r   r   r	   r
   r   r   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.transformsr   Úmatplotlib.pyplotÚpyplotr‰   r   r«   r   r[  r   r”   r   r   r   r5   r   ÚsysÚplatformÚon_winr"   rD   rW   rf   rs   rz   rž   rµ   r¸   r	  r  r½   rÂ   rÎ   rÒ   rê   rö   r  r  r  r0  r5  r=  rC  rR  rT  ra  re  rp  rx  r’  r˜  ÚmarkÚparametrizerš  r¦  r©  r¬  r°  r´  r·  r»  r½  rÁ  rÅ  rÐ  rÚ  rÛ  r    r    r    r!   Ú<module>   s¤    , 
%0



!








@








$





ÿ

	