o
    Õj8ƒ  ã                   @   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Š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   Z
get_closedr   Zget_xyZset_xy)ÚxyZxyclosedÚp© r   ú^/var/www/html/Deteccion_Ine/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+   )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<   


ÿ


r8   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   r2   r3   Úangle©ç        r=   r    r   é   é   é   )gj¼t“@g+‡ÙÎ·%Àg…ëQ¸@g®Gáz®ÿ?gR¸…ë1Q@)r   r   Zget_verticesZget_co_verticesÚcenterr2   r/   Úsqrtr3   ÚarrayÚtesting)r7   Zv1Zv2r   r   r   Útest_ellipse_verticesj   sN   þþþþûþþþûþrE   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    r@   g      >@©r;   ç     €f@)r/   Úasarrayr   ÚpirC   ÚcosÚsinÚinnerÚ	get_vertsÚTr   )	r1   r2   r3   r;   Zrect1Zrect2Z	angle_radZrotation_matrixZ	new_vertsr   r   r   Útest_rotate_rect   s   ÿrQ   Úpng)Ú
extensionsc           
      C   sŽ   |   ¡ }|  ¡ }d}d\}}d}t||||d}| |¡ | ¡ |ks%J ‚t|||ƒ}	|	 ¡ dks3J ‚| |	¡ |	 |¡ |	 ¡ |ksEJ ‚d S )Nr9   ©r   r   r>   rH   r   )Úadd_subplotr   Ú	add_patchZ	get_angler-   )
Úfig_testÚfig_refÚax_testÚax_refr1   r2   r3   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©çš™™™™™¹?r_   )çš™™™™™é?r`   r@   Úbr   é   )Ú	linewidthÚ	edgecolorÚ	linestyleÚr)r   rb   rb   r   )rU   r   Úget_linestylerV   )rW   rX   rY   rZ   r1   r2   r3   r[   Z	rect_ref2r\   Z
rect_test2r   r   r   Útest_dash_offset_patch_drawÊ   s0   
ÿ
ÿ


ÿ
ÿ
rh   c                  C   sH   t dddƒ ¡ d d… } t dddƒ ¡ d d… }tt |dd¡| ƒ d S )	N)éýÿÿÿéþÿÿÿr@   r    éÿÿÿÿr9   ri   rj   r   )r   rO   r   r/   Zroll)Zpos_verticesZneg_verticesr   r   r   Útest_negative_rectì   s   rl   zclip_to_bbox.pngc            	      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Ú	facecolorrd   iôÿÿÿg     `SÀé2   i’ÿÿÿÚgreenr?   Úblack)rr   rs   Úlwrd   )ÚpltÚsubplotsÚset_xlimÚset_ylimÚmpathÚPathÚunit_regular_starÚdeepcopyÚverticesÚunit_circleZmake_compound_pathÚmpatchesÚ	PathPatchrV   r.   r   Zclip_to_bbox)	Ú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.
    rb   Nrk   r   rn   Údashdot©r   r   r   rp   ©r   r   r   g      è?©rc   Ú
linestylesrs   rd   ©rc   re   rs   rd   r    ©r|   r}   r~   r   r/   Úconcatenater€   Úcodesrx   ÚaxesÚmcollectionsZPathCollectionÚadd_collectionr‚   rƒ   rV   rz   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 )Nrb   rk   r   rn   rŒ   ç      Ð?r   rŽ   )rc   r   rr   rs   rd   )rc   re   rr   rs   rd   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 )Nr9   r   rq   )rs   rr   r   )rx   ÚCircleÚget_facecolor)Úcr   r   r   Útest_patch_color_noneO  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 )Nrb   rk   r   rn   )r   )rn   é   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 )	Nrb   rk   )ú-ú--z-.ú:ÚsolidZdashedrŒ   Zdottedr@   r¦   r§   r‘   r   )r|   r}   r~   r   r/   r“   r€   r”   rx   ry   Ú	enumerater‚   rƒ   rV   rz   r{   ZcanvasZ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)rq   ÚNoneú Ú r@   r¦   r§   r‘   r©   rq   rk   r   )r|   r}   r   rU   r­   r€   r”   r‚   rƒ   rV   rz   r{   )	rW   rX   rš   rY   rZ   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)r9   rT   Z
set_center)rn   r%   Z
set_radius)r    r@   Ú	set_width)r   r>   Z
set_theta1)é-   rt   Z
set_theta2)rA   rf   r2   Ú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_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@rI   r   éh  r&   iÂ  iLÿÿÿé´   i|  r¶   é.   r@   r   rq   rº   )rs   rd   rw   rj   r%   r'   )rx   r•   r­   r‚   r¾   Ú
add_artistrz   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    r@   )r   ÚradiuszCircle(xy=(1, 2), radius=3)r?   rn   r:   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)rb   )rA   rf   r·   r¸   r2   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)r¥   )r   r2   r3   r;   r·   r¸   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))r@   r?   r   r    )r   rf   r2   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))r2   r3   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   r/   Ú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 )Nrn   r   rb   rq   ÚCú/Fzhatch.colorgš™™™™™Ù?r`   z//)ÚhatchÚfc)rx   ry   ÚbarÚranger­   Zset_facecolorZset_edgecolorZ	set_hatchZautoscale_viewÚ	autoscaleÚmplrß   Úcontextr   rV   )r„   r…   Zrectsr®   r4   rf   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   rn   rb   r   r    r?   r¥   r'   )Zmatplotlib.testing.jpl_unitsrD   Z	jpl_unitsÚregisterr‚   r   Úkmrx   ry   rV   rz   r{   )ÚUr   r„   r…   r   r   r   Útest_units_rectangle)  s   *
rí   zconnection_patch.pngZ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    r^   )çÍÌÌÌÌÌì?rî   r×   ú->)ÚxyAÚxyBÚcoordsAÚcoordsBÚaxesAZaxesBÚ
arrowstyle)g333333ã?rF   )r=   çš™™™™™É?zaxes fractionr©   )rð   rñ   rò   ró   rõ   )rx   ry   r‚   rÚ   rË   Zget_yaxis_transform)r„   Úax1Úax2Úconrð   rñ   rò   ró   r   r   r   Útest_connection_patch6  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ìÿÿÿúfigure pixelsrï   rn   ©rð   rò   rô   rñ   ró   rõ   ZshrinkBú
figure.dpiúsavefig.dpir>   r   )	ry   r‚   rÚ   rË   rˆ   rx   r   r2   r3   )rW   rX   r÷   rø   rù   Zbbr   r   r   Útest_connection_patch_figJ  s    ý
ýr  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ï   rn   rÿ   r   r  r   éH   zaxes pixelsrþ   )ry   r‚   rÚ   rË   rx   r   Údpi)	rW   rX   ZxyA_ptsZxyB_ptsr÷   rø   rù   ZxyA_pixZxyB_pixr   r   r   Ú"test_connection_patch_pixel_pointsa  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   rx   ry   rV   )r  r  ÚstartÚdeltar‡   r„   r…   r   r   r   Útest_datetime_rectanglew  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²  rn   )r  ÚpytestÚraisesÚ	TypeErrorr‚   r   )r  r  Zdt_deltar   r   r   Útest_datetime_datetime_failsƒ  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©rp   rp   rp   rF   ©)r=   rp   )rö   rp   )rž   rp   r  c                    s   g | ]	}ˆ   |ˆˆ¡‘qS r   ©Zcontains_point©r¹   Úpoint)r   rÒ   r0   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_radiusr/   rC   Úall)ÚpointsrÜ   Úresultr   )r  r   rÒ   r0   r   Útest_contains_point  s   
þr   c                  C   s^   t  ddd¡} g d¢}|  ¡ }|  ¡ }|  d ¡}| |||¡}|  |¡}t ||k¡s-J ‚d S )Nr  rp   rF   r  )r‚   r   r  r  r  Zcontains_pointsr/   r  )r  r  r   r0   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ü   r_   Zfigurer  rp   )r   r2   r3   r   r   )ÚoxZoyr  )r   r2   r3   rã   Úecrr   )r/   rC   rx   r   ry   r‚   r   rÛ   rV   r  rJ   ÚmcolorsZto_rgbr¢   )rW   rX   r   ZdxyZa1r4   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  rx   ry   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   rn   r   rp   )Úhead_lengthÚ
head_widthr2   g®Gáz+@g33333³$@gÍÌÌÌÌL#@g\Âõ(\$@g¤p=
×£#@g
×£p=
Ç?g
×£p=
Ç¿r    gö(\Âµ0@g®Gáz”.@g\Âõ(\û?gÂõ(\Ò?é   )rÎ   rÏ   ÚdxÚdyr2   r*  r)  )	rx   ry   r'  r/   rC   ÚallcloseÚroundr›   Úset_data©r„   r…   r'  Z	expected1Z	expected2r   r   r   Útest_fancyarrow_setdataÊ  s:   ùÿ
ùÿ
ÿr2  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º   )rw   ÚcolorÚequalr¥   r%   rn   rb   iXžÿÿiPF  ià±ÿÿiÈ  )rx   ry   r   rV   Úset_axis_offÚ
set_aspectrz   r{   )r„   r÷   rø   rÎ   rÏ   Zdiameterr…   Úar   r   r   Útest_large_arcé  s   
r9  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€–˜ ))rk   rk   )rk   r   rT   )r   rk   ))r   r   )r   r   )r   rk   )rk   r   )rÔ   )r    r_   )r    r&  )r    gü©ñÒMbP?r   g§èH.ÿï?)r  r?   rà   r   rÈ   zbig )rw   r4  Zzorderr;   ÚlabelÚgidi   rº   )r4  r5  )rx   ry   ÚzipZravelr/   rB   r­   r   Zrad2degZarctan2rV   rz   r{   ZaxhlineZaxvliner6  r7  )r„   Zax_arrÚscaleZdiag_centersZon_axis_centersZskewsr…   ÚsxZsyrº   ZprescaleZcentersÚjZx_signZy_signr8  r   r   r   Útest_rotated_arcsý  sB   ÿ

ÿö
çrA  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   "ÿrG  z
fmt, match))rD  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 )NrB  )r  r  rF  r   )ÚfmtrC  r   r   r   Útest_boxstyle_errors'  s   
"ÿrI  Zannulus)Zbaseline_imagesrS   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ã   ©rp   rü   r_   r¶   Úmra   rp   Úxxx©rã   r#  rr   râ   r5  )rx   ry   r   rV   r7  ©r„   r…   Zcirr  r   r   r   Útest_annulus0  s   
ÿ

rR  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&  rK  rL  rÑ   r_   r   rN  ra   rp   rO  rP  r5  r  rJ  rM  r¶   )	rx   ry   r   rV   r7  rA   Úradiir2   r;   rQ  r   r   r   Útest_annulus_setters<  s   
ÿ



rT  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&  rK  rL  rÑ   r_   r   rN  ra   rp   rO  rP  r5  r  )rö   rö   rJ  rü   rM  r¶   )rx   ry   r   rV   r7  rA   Zset_semimajorZset_semiminorrS  r2   r;   rQ  r   r   r   Útest_annulus_setters2Q  s&   
ÿ







rU  c                  C   s8   ddg} t | | gƒj}t t| gƒ ¡ j|k¡sJ ‚d S )Nr   )r   Zextentsr/   r  r   Zget_extents)r  Zcorrect_extentsr   r   r   Útest_degenerate_polygonj  s   "rV  Úkwarg)rd   rs   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.rB  r4  rv   r   )r  ZwarnsÚUserWarningr   )rW  r   r   r   Útest_color_override_warningp  s
   ÿ"ýrY  c                  C   s"   t t d¡ƒ} |  ¡ g ksJ ‚d S )NrÕ   )r   r/   ZzerosrO   )Zpolyr   r   r   Útest_empty_vertsx  s   rZ  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_antialiased}  s
   
r\  c                  C   s.   t ƒ } |  d¡ |  d ¡ |  ¡ dksJ ‚d S )Nrª   r¬   )r   Zset_linestylerg   r[  r   r   r   Útest_default_linestyle‡  s   

r]  c                  C   ó   t ƒ } |  ¡ dksJ ‚d S )NZbutt)r   Zget_capstyler[  r   r   r   Útest_default_capstyleŽ  ó   r_  c                  C   r^  )NZmiter)r   Zget_joinstyler[  r   r   r   Útest_default_joinstyle“  r`  ra  Zautoscale_arcÚsvg)rS   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   r@   )r?   r   )r:  r9   r   r&   )r·   r¸   r  ç      ø?rp   r   r   g      @én   éx   ç      @r3  éÜ   g      @i6  i@  )rx   ry   r   r=  rV   ræ   )r„   ZaxsZ	arc_listsr…   ZarcsÚarcr   r   r   Útest_autoscale_arc˜  s   ýý
ýri  )rR   rb  Ú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 )
Nrp   r   r   é<   r   ©r·   r¸   r;   rq   rº   )r   Z
facecolorsZ
edgecolors)r   r–   ZPatchCollectionry   rV   r—   )rW   rX   Úarc1Úarc2rœ   r   r   r   Útest_arc_in_collectionª  s   
ÿrp  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 )	Nrp   r   r   rl  r   rm  rc  r   )r   ry   rV   rµ   r-   )rW   rX   rn  ro  r   r   r   Útest_modifying_arc´  s   
rq  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þ?r=   gÍÌÌÌÌÌ @g       €g       @gffffff@rG   g      $@g333333û?gö(\ÂõØ?g{®Gáz¤?g…ëQ¸…ã?g{®Gáz¤¿g®Gáz@gq=
×£p@gìQ¸…ë	@g®Gáz@rf  g{®Gáz@g…ëQ¸@gR¸…ëQ@gÃõ(\Â@rp   r@   r%   g333333ó?)rÎ   r,  r-  r2   )rx   ry   rç   r   ÚArrowr/   rC   r.  r/  rO   r0  r1  r   r   r   Útest_arrow_set_data¾  s6   ùÿ
ùÿ
 rs  )rR   rj  rb  rk  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 )NrG   zhatch.linewidthr9   r   rÎ   )râ   r   )	rU   rx   Z
rc_contextrV   r‚   r   r   Zset_hatch_linewidthZget_hatch_linewidth)rW   rX   rY   rZ   rw   r   r   r   Ú test_set_and_get_hatch_linewidthÛ  s   ÿrt  c                  C   s,   t  ¡ \} }| g g g g ¡}|d usJ ‚d S )N)rx   ry   r'  )r„   r…   r'  r   r   r   Útest_empty_fancyarrowì  s   ru  )]Ú__doc__ÚplatformÚnumpyr/   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pyplotrx   r   r–   r   r$  r   r‚   r   r|   r   r.   r   r   r8   rE   rQ   r]   rh   rl   rŠ   r   rŸ   rß   rè   r¤   r¨   r°   r´   rÅ   ÚmachinerÐ   rÞ   ré   rí   rú   r  r  r  r  r   r!  r%  r(  r2  r9  rA  rG  ÚmarkZparametrizerI  rR  rT  rU  rV  rY  rZ  r\  r]  r_  ra  ri  rp  rq  rs  rt  ru  r   r   r   r   Ú<module>   s¸    , %03



!







ÿ
@


ÿ








$





ÿ

	
	
