o
    ˆ‚¡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   Ú
get_closedr   Úget_xyÚset_xy)ÚxyÚxyclosedÚp© r    úL/var/www/myenv/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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©ç        rI   r%   r   é   é   é   )gj¼t“@g+‡ÙÎ·%Àg…ëQ¸@g®Gáz®ÿ?gR¸…ë1Q@)r   r   Úget_verticesÚget_co_verticesÚcenterr<   r8   Úsqrtr=   ÚarrayÚtesting)rC   Úv1Úv2r    r    r!   Útest_ellipse_verticesk   sN   þþþþûþþþûþrU   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%   rL   g      >@©rG   ç     €f@)r8   Úasarrayr   ÚpirQ   ÚcosÚsinÚinnerÚ	get_vertsÚTr   )	r;   r<   r=   rG   Ú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 )NrE   ©r   r   rJ   rW   r   )Úadd_subplotr   Ú	add_patchÚ	get_angler4   )
Úfig_testÚfig_refÚax_testÚax_refr;   r<   r=   rG   Ú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   rL   Ú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)éýÿÿÿéþÿÿÿrL   r%   éÿÿÿÿrE   r€   r   r   )r   r^   r   r8   Ú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’ÿÿÿÚgreenrK   Úblack)rŽ   r   Úlwry   )ÚpltÚsubplotsÚset_xlimÚset_ylimÚmpathÚPathÚunit_regular_starÚdeepcopyÚverticesÚunit_circleÚmake_compound_pathÚmpatchesÚ	PathPatchrj   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¡ | 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   r8   Ú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_override0  s.   
ü
ü
rÃ   Údefaultc                  C   s*   t jddddd} |  ¡ d dksJ ‚d S )NrE   r   r   )r   rŽ   r   )r”   ÚCircleÚget_facecolor)Úcr    r    r!   Útest_patch_color_noneP  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_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 )	Nrw   r‚   )ú-ú--z-.ú:ÚsolidÚdashedr¬   ÚdottedrL   rË   rÌ   r±   r   )r˜   r™   rš   r   r8   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_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)r   ÚNoneú Ú rL   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)rE   rh   Ú
set_center)r‰   r*   Ú
set_radius)r%   rL   Ú	set_width)r   rJ   Ú
set_theta1)é-   r   Ú
set_theta2)rO   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_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¡ |  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â   é.   rL   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%   rL   )r   ÚradiuszCircle(xy=(1, 2), radius=3)rK   r‰   rF   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)rw   )rO   r{   rä   rå   r<   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)rÊ   )r   r<   r=   rG   rä   rå   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))rL   rK   r   r%   )r   r{   r<   rG   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   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%   rK   rÊ   r,   )Úmatplotlib.testing.jpl_unitsrR   Ú	jpl_unitsÚregisterrŸ   r   Úkmr”   r•   rj   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%   rs   )çÍÌÌÌÌÌì?r*  r  ú->)ÚxyAÚxyBÚcoordsAÚcoordsBÚaxesAÚaxesBÚ
arrowstyle)g333333ã?rV   )rI   çš™™™™™É?zaxes fractionrÎ   )r,  r-  r.  r/  r2  )r”   r•   rŸ   r  rú   Úget_yaxis_transform)r¡   Úax1Úax2Úconr,  r-  r.  r/  r    r    r!   Útest_connection_patch7  s   ý

ÿr8  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Ó?r3  r  )iâÿÿÿiìÿÿÿzfigure pixelsr+  r‰   )r,  r.  r0  r-  r/  r2  ÚshrinkBz
figure.dpiúsavefig.dpirJ   r$   )	r•   rŸ   r  rú   r¦   r”   r   r<   r=   )rl   rm   r5  r6  r7  Ú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•   rj   )r>  r?  ÚstartÚdeltar¥   r¡   r¢   r    r    r!   Útest_datetime_rectanglea  s   
rE  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²  r‰   )r>  ÚpytestÚraisesÚ	TypeErrorrŸ   r   )r>  rC  Údt_deltar    r    r!   Útest_datetime_datetime_failsm  s   ÿ"ÿrK  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‹   rV   ©)rI   r‹   )r3  r‹   )rÂ   r‹   rL  c                    s   g | ]	}ˆ   |ˆˆ¡‘qS r    ©Úcontains_point©ræ   Úpoint)r   r  r:   r    r!   Ú
<listcomp>€  s    þþz'test_contains_point.<locals>.<listcomp>c                    s   g | ]}ˆ   |¡‘qS r    rN  rP  )Úellr    r!   rR  ƒ  s    )rŸ   r   Úget_pathÚget_transformÚ_process_radiusr8   rQ   Úall)Úpointsr  Úresultr    )rS  r   r  r:   r!   Útest_contains_pointz  s   
þrZ  c                  C   s^   t  ddd¡} g d¢}|  ¡ }|  ¡ }|  d ¡}| |||¡}|  |¡}t ||k¡s-J ‚d S )NrL  r‹   rV   rM  )rŸ   r   rT  rU  rV  Úcontains_pointsr8   rW  )rS  rX  r   r:   r  r  rY  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 )Nr3  r9  rt   Úfigurer;  r‹   )r   r<   r=   r   r   )ÚoxÚoyéH   )r   r<   r=   r  ÚecrŽ   )r8   rQ   r”   r   r•   rŸ   r   r  rj   ÚdpirY   ÚmcolorsÚto_rgbrÆ   )rl   rm   r   ÚdxyÚa1r?   ÚshadowÚa2r    r    r!   Útest_shadow“  s$   


ü
ri  c                  C   s:   ddl m }  | dddƒ}t ¡ \}}td|fd|fƒ}d S )Nr   rF  iÐ  r   ç{®Gáz„?)r>  r”   r•   r	   )r>  Údtimer¡   r¢   Úarrowr    r    r!   Útest_fancyarrow_units¬  s   rm  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<   ro  rn  )	r”   r•   rl  r8   rQ   ÚallcloseÚroundr¼   Úset_data)r¡   r¢   rl  Ú	expected1Ú	expected2r    r    r!   Útest_fancyarrow_setdata´  s:   ùÿ
ùÿ
ÿrx  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¡   r5  r6  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%   rj  )r%   gü©ñÒMbP?r   g§èH.ÿï?)rC  rK   r  r   r÷   zbig )r“   rz  ÚzorderrG   ÚlabelÚgidi   rç   )rz  r{  )r”   r•   ÚzipÚravelr8   rP   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   r3  Úfoo)Úshape)rG  rH  Ú
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™  )rG  rH  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 )NrL  r3  çš™™™™™©?Úg©r  ©r‹   r9  rt   râ   Úmrv   r‹   Úxxx©r  ra  rŽ   r  r{  )r”   r•   r   rj   r}  ©r¡   r¢   ÚcirrS  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 )NrH   r3  rj  r¤  r¥  r  rt   r   r§  rv   r‹   r¨  r©  r{  rL  r£  r¦  râ   )	r”   r•   r   rj   r}  rO   Úradiir<   rG   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 )NrH   r3  rj  r¤  r¥  r  rt   r   r§  rv   r‹   r¨  r©  r{  rL  )r3  r3  r£  r9  r¦  râ   )r”   r•   r   rj   r}  rO   Úset_semimajorÚset_semiminorr­  r<   rG   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   rW  r   Úget_extents)rQ  Úcorrect_extentsr    r    r!   Útest_degenerate_polygonT  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™  rz  r’   r    )rG  ÚwarnsÚUserWarningr   )r¶  r    r    r!   Útest_color_override_warningZ  s
   ÿ"ýr¹  c                  C   s"   t t d¡ƒ} |  ¡ g ksJ ‚d S )Nr  )r   r8   Úzerosr^   )Úpolyr    r    r!   Útest_empty_vertsb  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_antialiasedg  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_linestyleq  s   

rÂ  c                  C   ó   t ƒ } |  ¡ dksJ ‚d S )NÚbutt)r   Úget_capstyler¿  r    r    r!   Útest_default_capstylex  ó   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   rL   )rK   r   )r‚  rE   r   r+   )rä   rå   rL  ç      ø?r‹   r#   r$   g      @én   éx   g      @ry  éÜ   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å   rG   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à   r4   )rl   rm   rÝ  rÞ  r    r    r!   Útest_modifying_arcž  s   
rà  )ZÚ__doc__Únumpyr8   Únumpy.testingr   r   rG  Ú
matplotlibr  Úmatplotlib.patchesr   r   r   r   r   r	   r
   r   r   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.transformsr   Úmatplotlib.pyplotÚpyplotr”   r   r¶   r   rc  r   rŸ   r   r˜   r   r5   r   ÚsysÚplatformÚon_winr"   rD   rU   re   rr   r   r†   r©   rÀ   rÃ   r  r   rÈ   rÍ   rÙ   rÝ   rô   r   r  r"  r(  r8  r=  rE  rK  rZ  r\  ri  rm  rx  r€  r˜  rž  ÚmarkÚparametrizer   r¬  r®  r±  rµ  r¹  r¼  rÀ  rÂ  rÆ  rÊ  rÕ  rß  rà  r    r    r    r!   Ú<module>   s¦    , 
%03



!








@








$





ÿ

	