o
    rez  ã                   @   sv  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+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„ ƒZ0edgdddd „ ƒZ1ed!gddd"d#„ ƒZ2ej3 4d$¡d%d&„ ƒZ5ed'gddd(d)„ ƒZ6d*d+„ Z7edgdd,d-„ ƒZ8d.d/„ Z9ed0gde(rÏd1ndd2d3d4„ ƒZ:d5d6„ Z;ed7gdd$d8d9d:„ ƒZ<ed;gƒd<d=„ ƒZ=ed>gd?dd@dAdB„ ƒZ>edgddCdD„ ƒZ?dEdF„ Z@dGdH„ ZAdIdJ„ ZBdKdL„ ZCedgddMdN„ ƒZDdOdP„ ZEdQdR„ ZFedSgd?dTdUdV„ ƒZGedWgd?dTdXdY„ ƒZHdZd[„ ZIejJ Kd\d]¡d^d_„ ƒZLed`gdgdadbdc„ ƒZMed`gdgdaddde„ ƒZNed`gdgdadfdg„ ƒZOdhdi„ ZPejJ Kdjdk¡dldm„ ƒZQdndo„ ZRdpdq„ ZSdrds„ ZTdtdu„ ZUdvdw„ ZVedxgddygd?ddzd{d|„ ƒZWeg d}¢dd~d„ ƒZXeg d}¢dd€d„ ƒZYd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   Z
get_closedr   Zget_xyZset_xy)ÚxyZxyclosedÚp© r   úMD:\Projects\ConvertPro\env\Lib\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,   )r-   r)   )r   r   Zget_cornersZ
get_centerÚ	set_angleÚmtransformsZAffine2DZrotate_aroundÚnpZdeg2radÚ	transformr   r   )	ÚlocÚwidthÚheightZcornersÚrectZcorners_rotÚthetaÚtÚellipser   r   r   Útest_corner_center;   s<   


ÿ


r9   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   r3   r4   Úangle©ç        r>   r!   r   é   é   é   )gj¼t“@g+‡ÙÎ·%Àg…ëQ¸@g®Gáz®ÿ?gR¸…ë1Q@)r   r   Zget_verticesZget_co_verticesÚcenterr3   r0   Úsqrtr4   ÚarrayÚtesting)r8   Úv1Úv2r   r   r   Útest_ellipse_verticesk   sN   þþþþûþþþûþrH   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!   rA   g      >@©r<   ç     €f@)r0   Úasarrayr   ÚpirD   ÚcosÚsinÚinnerÚ	get_vertsÚTr   )	r2   r3   r4   r<   Zrect1Zrect2Z	angle_radZrotation_matrixZ	new_vertsr   r   r   Útest_rotate_rectž   s   ÿrS   Úpng)Ú
extensionsc           
      C   sŽ   |   ¡ }|  ¡ }d}d\}}d}t||||d}| |¡ | ¡ |ks%J ‚t|||ƒ}	|	 ¡ dks3J ‚| |	¡ |	 |¡ |	 ¡ |ksEJ ‚d S )Nr:   ©r   r   r?   rJ   r   )Úadd_subplotr   Ú	add_patchZ	get_angler.   )
Úfig_testÚfig_refÚax_testÚax_refr2   r3   r4   r<   Úrect_refÚ	rect_testr   r   r   Útest_rotate_rect_draw¶   s   


r_   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©çš™™™™™¹?ra   )çš™™™™™é?rb   rA   Úbr   é   )Ú	linewidthÚ	edgecolorÚ	linestyleÚr)r   rd   rd   r   )rW   r   Úget_linestylerX   )rY   rZ   r[   r\   r2   r3   r4   r]   Z	rect_ref2r^   Z
rect_test2r   r   r   Útest_dash_offset_patch_drawË   s0   
ÿ
ÿ


ÿ
ÿ
rj   c                  C   sH   t dddƒ ¡ d d… } t dddƒ ¡ d d… }tt |dd¡| ƒ d S )	N)éýÿÿÿéþÿÿÿrA   r!   éÿÿÿÿr:   rk   rl   r   )r   rQ   r   r0   Zroll)Zpos_verticesZneg_verticesr   r   r   Útest_negative_rectí   s   rn   Ú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çÿÿÿç      à?ZcoralÚnone)ÚalphaÚ	facecolorrf   iôÿÿÿg     `SÀé2   i’ÿÿÿÚgreenr@   Úblack)ru   rv   Úlwrf   )ÚpltÚsubplotsÚset_xlimÚset_ylimÚmpathÚPathÚunit_regular_starÚdeepcopyÚverticesÚunit_circleZmake_compound_pathÚmpatchesÚ	PathPatchrX   r/   r   ro   )	ÚfigÚaxr   Zpath2ÚcombinedÚpatchÚbboxÚresult_pathZresult_patchr   r   r   Útest_clip_to_bboxõ   s(   ÿ


ÿr   Z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.
    rd   Nrm   r   rq   Údashdot©r   r   r   rs   ©r   r   r   g      è?©re   Ú
linestylesrv   rf   ©re   rg   rv   rf   r!   ©r   r€   r   r„   r0   Úconcatenaterƒ   Úcodesr{   ÚaxesÚmcollectionsZPathCollectionÚadd_collectionr…   r†   rX   r}   r~   ©	ÚstarÚcircleÚvertsr—   Z	cut_star1Z	cut_star2rˆ   ÚcolrŠ   r   r   r   Útest_patch_alpha_coloring  s*   
ý
ý
r    Z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 )Nrd   rm   r   rq   r   ç      Ð?r   r‘   )re   r“   ru   rv   rf   )re   rg   ru   rv   rf   r!   r•   r›   r   r   r   Útest_patch_alpha_override0  s.   
ü
ü
r¢   Údefaultc                  C   s*   t jddddd} |  ¡ d dksJ ‚d S )Nr:   r   rt   )rv   ru   r   )r{   ÚCircleÚget_facecolor)Úcr   r   r   Útest_patch_color_noneP  s   r§   Z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 )Nrd   rm   r   rq   )r   )rq   é   r   r¨   ©r   r   r   ©r   r   r   r’   r”   r!   r•   r›   r   r   r   Útest_patch_custom_linestyleX  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 )	Nrd   rm   )ú-ú--z-.ú:ÚsolidZdashedr   ZdottedrA   r©   rª   r”   r   )r   r€   r   r„   r0   r–   rƒ   r—   r{   r|   Ú	enumerater…   r†   rX   r}   r~   ZcanvasZdraw)
rœ   r   rž   r—   r“   r‡   rˆ   ÚiÚlsrŠ   r   r   r   Útest_patch_linestyle_accentsu  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)rt   ÚNoneú Ú rA   r©   rª   r”   r¬   rt   rm   r   )r   r€   r„   rW   r°   rƒ   r—   r…   r†   rX   r}   r~   )	rY   rZ   r   r[   r\   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)r:   rV   Z
set_center)rq   r&   Z
set_radius)r!   rA   Ú	set_width)r   r?   Z
set_theta1)é-   rw   Z
set_theta2)rB   rh   r3   Ú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)Z
param_dictZ	init_argsÚwÚattrÚold_vÚnew_vÚfuncr   r   r   Útest_wedge_movement©  s   üýrÈ   Zwedge_rangegffffffú?)rŽ   Z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@rK   r   éh  r'   iÂ  iLÿÿÿé´   i|  r¹   é.   rA   r   rt   r½   )rv   rf   rz   rl   r&   r(   )r{   r˜   r°   r…   rÁ   Ú
add_artistr}   r~   )	rˆ   Út1Úargsr±   rº   r»   ÚxÚyZ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!   rA   )r   ÚradiuszCircle(xy=(1, 2), radius=3)r@   rq   r;   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)rd   )rB   rh   rº   r»   r3   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)r¨   )r   r3   r4   r<   rº   r»   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))rA   r@   r   r!   )r   rh   r3   r<   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))r3   r4   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   ZRegularPolygonZCirclePolygonZFancyBboxPatchr   r€   r†   r   r0   Úemptyr	   ÚConnectionPatchÚShadow)r   Úexpectedr   rØ   Úsr   r   r   Útest_patch_str×  sH   

rß   Z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 )Nrq   r   rd   rt   ÚCú/Fzhatch.colorgš™™™™™Ù?rb   z//)ÚhatchÚfc)r{   r|   ÚbarÚranger°   Zset_facecolorZset_edgecolorZ	set_hatchZautoscale_viewÚ	autoscaleÚmplrà   Úcontextr   rX   )r‡   rˆ   Zrectsr±   r5   rh   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   rq   rd   r   r!   r@   r¨   r(   )Zmatplotlib.testing.jpl_unitsrE   Z	jpl_unitsÚregisterr…   r   Úkmr{   r|   rX   r}   r~   )ÚUr   r‡   rˆ   r   r   r   Útest_units_rectangle*  s   *
rî   zconnection_patch.pngZ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!   r`   )çÍÌÌÌÌÌì?rï   rØ   ú->)ÚxyAÚxyBÚcoordsAÚcoordsBÚaxesAZaxesBÚ
arrowstyle)g333333ã?rI   )r>   çš™™™™™É?zaxes fractionr¬   )rñ   rò   ró   rô   rö   )r{   r|   r…   rÛ   rÌ   Zget_yaxis_transform)r‡   Úax1Úax2Úconrñ   rò   ró   rô   r   r   r   Útest_connection_patch7  s   ý

ÿrû   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ð   rq   )rñ   ró   rõ   rò   rô   rö   ZshrinkBz
figure.dpiúsavefig.dpir?   r    )	r|   r…   rÛ   rÌ   r‹   r{   r   r3   r4   )rY   rZ   rø   rù   rú   Zbbr   r   r   Útest_connection_patch_figJ  s    ý
ýrþ   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)rÿ   r   r…   r   r{   r|   rX   )rÿ   r   ÚstartÚdeltarŠ   r‡   rˆ   r   r   r   Útest_datetime_rectanglea  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   ©rÿ   r  r   i²  rq   )rÿ   ÚpytestÚraisesÚ	TypeErrorr…   r   )rÿ   r  Zdt_deltar   r   r   Útest_datetime_datetime_failsm  s   ÿ"ÿr  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©rs   rs   rs   rI   ©)r>   rs   )r÷   rs   )r¡   rs   r  c                    s   g | ]	}ˆ   |ˆˆ¡‘qS r   ©Zcontains_point©r¼   Úpoint)r   rÓ   r1   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_radiusr0   rD   Úall)ÚpointsrÝ   Úresultr   )r  r   rÓ   r1   r   Útest_contains_pointz  s   
þr  c                  C   s^   t  ddd¡} g d¢}|  ¡ }|  ¡ }|  d ¡}| |||¡}|  |¡}t ||k¡s-J ‚d S )Nr  rs   rI   r  )r…   r   r  r  r  Zcontains_pointsr0   r  )r  r  r   r1   rÓ   rÝ   r  r   r   r   Útest_contains_points‡  s   

r  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÷   rü   ra   Zfigurerý   rs   )r   r3   r4   r   r   )ÚoxZoyéH   )r   r3   r4   rä   Úecru   )r0   rD   r{   r   r|   r…   r   rÜ   rX   ZdpirL   ÚmcolorsZto_rgbr¥   )rY   rZ   r   ZdxyZa1r5   ZshadowZa2r   r   r   Útest_shadow“  s$   


ü
r  c                  C   s:   ddl m }  | dddƒ}t ¡ \}}td|fd|fƒ}d S )Nr   r  iÐ  r   ç{®Gáz„?)rÿ   r{   r|   r	   )rÿ   Zdtimer‡   rˆ   Úarrowr   r   r   Útest_fancyarrow_units¬  s   r"  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   rq   r   rs   )Úhead_lengthÚ
head_widthr3   g®Gáz+@g33333³$@gÍÌÌÌÌL#@g\Âõ(\$@g¤p=
×£#@g
×£p=
Ç?g
×£p=
Ç¿r!   gö(\Âµ0@g®Gáz”.@g\Âõ(\û?gÂõ(\Ò?é   )rÏ   rÐ   ZdxZdyr3   r$  r#  )	r{   r|   r!  r0   rD   ZallcloseÚroundrž   Úset_data)r‡   rˆ   r!  Z	expected1Z	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½   )rz   ÚcolorÚequalr¨   r&   rq   rd   iXžÿÿiPF  ià±ÿÿiÈ  )r{   r|   r   rX   Úset_axis_offÚ
set_aspectr}   r~   )r‡   rø   rù   rÏ   rÐ   Z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   )ZsqueezeÚfigsizei€–˜ ))rm   rm   )rm   r   rV   )r   rm   ))r   r   )r   r   )r   rm   )rm   r   )rÕ   )r!   ra   )r!   r   )r!   gü©ñÒMbP?r   g§èH.ÿï?)r  r@   rá   r   rÉ   zbig )rz   r*  Zzorderr<   ÚlabelÚgidi   r½   )r*  r+  )r{   r|   ÚzipZravelr0   rC   r°   r   Zrad2degZarctan2rX   r}   r~   ZaxhlineZaxvliner,  r-  )r‡   Zax_arrÚscaleZdiag_centersZon_axis_centersZskewsrˆ   ÚsxZsyr½   ZprescaleZcentersÚjZx_signZy_signr.  r   r   r   Útest_rotated_arcsç  sB   ÿ

ÿö
çr7  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 )Nr8  )r  r	  r<  r   )Úfmtr9  r   r   r   Útest_boxstyle_errors  s   
"ÿr?  Zannulus)Zbaseline_imagesrU   c               
   C   sV   t  ¡ \} }tddddd}tddddd	d
ddd}| |¡ | |¡ | d¡ d S )Nr  r÷   çš™™™™™©?Úg©rä   ©rs   rü   ra   r¹   Úmrc   rs   Úxxx©rä   r  ru   rã   r+  )r{   r|   r   rX   r-  ©r‡   rˆ   Zcirr  r   r   r   Útest_annulus  s   
ÿ

rH  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 )Nr=   r÷   r   rA  rB  rÒ   ra   r   rD  rc   rs   rE  rF  r+  r  r@  rC  r¹   )	r{   r|   r   rX   r-  rB   Úradiir3   r<   rG  r   r   r   Útest_annulus_setters&  s   
ÿ



rJ  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÷   r   rA  rB  rÒ   ra   r   rD  rc   rs   rE  rF  r+  r  )r÷   r÷   r@  rü   rC  r¹   )r{   r|   r   rX   r-  rB   Zset_semimajorZset_semiminorrI  r3   r<   rG  r   r   r   Útest_annulus_setters2;  s&   
ÿ







rK  c                  C   s8   ddg} t | | gƒj}t t| gƒ ¡ j|k¡sJ ‚d S )Nr   )r   Zextentsr0   r  r   Zget_extents)r  Zcorrect_extentsr   r   r   Útest_degenerate_polygonT  s   "rL  Úkwarg)rf   rv   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.r8  r*  ry   r   )r  ZwarnsÚUserWarningr   )rM  r   r   r   Útest_color_override_warningZ  s
   ÿ"ýrO  c                  C   s"   t t d¡ƒ} |  ¡ g ksJ ‚d S )NrÖ   )r   r0   ZzerosrQ   )Zpolyr   r   r   Útest_empty_vertsb  s   rP  c                  C   sN   t ƒ } |  td  ¡ |  ¡ td  ksJ ‚|  d ¡ |  ¡ td ks%J ‚d S )Nzpatch.antialiased)r   Zset_antialiasedr   Zget_antialiased©rŠ   r   r   r   Útest_default_antialiasedg  s
   
rR  c                  C   s.   t ƒ } |  d¡ |  d ¡ |  ¡ dksJ ‚d S )Nr­   r¯   )r   Zset_linestyleri   rQ  r   r   r   Útest_default_linestyleq  s   

rS  c                  C   ó   t ƒ } |  ¡ dksJ ‚d S )NZbutt)r   Zget_capstylerQ  r   r   r   Útest_default_capstylex  ó   rU  c                  C   rT  )NZmiter)r   Zget_joinstylerQ  r   r   r   Útest_default_joinstyle}  rV  rW  Zautoscale_arcÚsvg)rU   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   rA   )r@   r   )r0  r:   r   r'   )rº   r»   r  ç      ø?rs   r   r    g      @én   éx   g      @r)  éÜ   g      @i6  i@  )r{   r|   r   r3  rX   rç   )r‡   ZaxsZ	arc_listsrˆ   ZarcsÚarcr   r   r   Útest_autoscale_arc‚  s   ýý
ýr^  )rT   rX  ZpdfZ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 )
Nrs   r   r   é<   r    ©rº   r»   r<   rt   r½   )r   Z
facecolorsZ
edgecolors)r   r™   ZPatchCollectionr|   rX   rš   )rY   rZ   Úarc1Úarc2rŸ   r   r   r   Útest_arc_in_collection”  s   
ÿrc  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 )	Nrs   r   r   r_  r    r`  rY  r   )r   r|   rX   r¸   r.   )rY   rZ   ra  rb  r   r   r   Útest_modifying_arcž  s   
rd  )ZÚ__doc__Únumpyr0   Znumpy.testingr   r   r  Z
matplotlibrè   Zmatplotlib.patchesr   r   r   r   r   r	   r
   r   r   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.transformsr   Zmatplotlib.pyplotZpyplotr{   r   r™   r   r  r   r…   r   r   r   r/   r   ÚsysÚplatformZon_winr   r9   rH   rS   r_   rj   rn   r   r    r¢   rà   ré   r§   r«   r³   r·   rÈ   rÑ   rß   rê   rî   rû   rþ   r  r  r  r  r  r"  r(  r/  r7  r=  ÚmarkZparametrizer?  rH  rJ  rK  rL  rO  rP  rR  rS  rU  rW  r^  rc  rd  r   r   r   r   Ú<module>   s¦    , 
%03



!








@








$





ÿ

	