a
    ü
þd!D  ã                   @   s   d dl Z d dlmZ d dlZd dlZd dlmZ d dl	m
Z d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ  d dl!Z"d dl#m$Z$m%Z% dd„ Z&dd„ Z'e%dgd	d
dd„ ƒZ(e$dgddd„ ƒZ)dd„ Z*e%dgd	dddd„ ƒZ+dd„ Z,e%dgd	dddd„ ƒZ-dd„ Z.dd „ Z/d!d"„ Z0ej1 2d#g d$¢¡d%d&„ ƒZ3d'd(„ Z4d)d*„ Z5d+d,„ Z6d-d.„ Z7d/d0„ Z8d1d2„ Z9d3d4„ Z:d5d6„ Z;d7d8„ Z<dS )9é    N)Úchain)Úcheck_figures_equalÚimage_comparisonc                  C   s<  t  ¡ } |  ddg¡ |  ddg¡ d}| j |¡}tj|ddddd}|  |¡ |j	| jksbJ ‚tj|dddd dd	}| 
¡ s„J ‚|  |¡ t|j	tjƒs J ‚tj|d
d
t ¡ dd}|  |¡ t|j	tjƒsÔJ ‚tj|ddddd}| ¡ }| 
¡ rüJ ‚|  |¡ | ¡ |ksJ ‚| 
¡ s&J ‚|j	| jks8J ‚d S )Né   é   ©é   r   Úyellowç      à?)ÚwidthÚheightÚfcÚalphaéx   Úcoral)r   r   r   Ú	transformr   éd   )r   r   r   r   )ÚpltÚaxesÚset_xlimÚset_ylimÚ	transDatar   ÚmpatchesÚEllipseÚ	add_patchZ
_transformZis_transform_setÚ
isinstanceÚmtransformsÚIdentityTransformÚget_transform)ÚaxÚxy_dataÚxy_pixÚeZintermediate_transform© r#   úe/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/matplotlib/tests/test_artist.pyÚtest_patch_transform_of_none   s8    
ÿ

ÿ
ÿ
r%   c                  C   s  t  ¡ } |  ddg¡ |  ddg¡ d}| j |¡}tj|ddd}tj	|gddd}|  
|¡ | ¡ | ¡  | jkszJ ‚tj|ddd}tj	|gd	dd}| d ¡ |  
|¡ t| ¡ tjƒsÄJ ‚tj|d
d
d}tj	|gt ¡ dd}|  
|¡ t| ¡ tjƒs
J ‚d S )Nr   r   r   )r   r   r	   r
   )Ú	facecolorr   r   r   r   )r   r   )r   r   r   r   r   r   r   r   ÚmcollectionsZPatchCollectionÚadd_collectionZget_offset_transformr   Zset_transformr   r   r   )r   r    r!   r"   Úcr#   r#   r$   Ú!test_collection_transform_of_none?   s.    

ÿ

þ
r*   Zclip_path_clippingT)Úremove_textc            	      C   s  t j ¡  ¡ } |  jd9  _|  jd8  _t j ¡  ¡ }|jd d d… |_t j | |¡}t j d¡ ¡ }| jd9  _tj	ddddd\}\}}t
j|gd	d
dddd}| ||j¡ | |¡ tj|d	d
dddd}| ||j¡ | |¡ | ddg¡ | ddg¡ d S )Né   r   éÿÿÿÿé   gÍÌÌÌÌÌ@r   T)ZsharexZshareyé   ZblueZredgffffffæ?Ú*)ÚlwÚ	edgecolorr&   r   Úhatchéýÿÿÿr   )ÚmpathÚPathZunit_rectangleÚdeepcopyZverticesZunit_circleZmake_compound_pathZunit_regular_starr   Úsubplotsr'   ZPathCollectionÚset_clip_pathr   r(   r   Ú	PathPatchr   r   r   )	ZexteriorZinteriorZ	clip_pathZstarÚfigÚax1Úax2ÚcolÚpatchr#   r#   r$   Útest_clippingc   s*    ÿ
ÿ
r@   Zpng)Ú
extensionsc                 C   s¨   |   g d¢¡}| ddgddg¡\}t ddgddgddgddgddgg¡}tj||jd}| |¡ |  g d¢¡}| ddgddg¡ |jddd |jddd d S )	N)r   r   r   r   r4   r   r   r   )r   )r
   g      è?)ZxlimZylim)	Zadd_axesÚplotr5   r6   r   r:   r   r9   Úset)Zfig_testZfig_refZax_testÚlÚpZax_refr#   r#   r$   Útest_clipping_zoom   s    (
rF   c                  C   s–   t j d¡} t j d¡}t ¡ \}}| | |d¡ | dd¡ t ¡ }|j|dd t	| 
¡ ƒdk shJ ‚t ¡ }|j|dd t	| 
¡ ƒdk s’J ‚d S )	Ni N  zk.r   r   Úpdf)Úformati@  Úsvg)ÚnpÚrandomr   r8   rB   r   ÚioÚBytesIOZsavefigÚlenÚgetvalue)ÚxÚyr;   r   rG   rI   r#   r#   r$   Útest_cull_markers’   s    rR   ZhatchingÚdefault)r+   Ústylec                  C   s°   t  dd¡\} }tjddddd}| |¡ tjddgdg|jdd	}| |¡ tjd
ddddd}| |¡ tjddgdg|jddd}| |¡ | 	dd¡ | 
dd¡ d S )Nr   ©r   r   r   r,   ú/)r3   i€>  )g      ø?ç      @)ÚsizesÚoffsetsÚoffset_transformr3   )r,   r   ZC1)r3   r2   )g      @rW   )rX   rY   rZ   r3   r2   r   é   é	   )r   r8   r   Z	Rectangler   r'   ZRegularPolyCollectionr   r(   r   r   )r;   r   Zrect1Zrect2Zrect3Zrect4r#   r#   r$   Útest_hatching£   s"    
þ

þ
r]   c                  C   sú   t  ¡ \} }| t d¡ dd¡¡}| tdƒ¡\}| js>J ‚|jsHJ ‚| j	 
¡  | jr\J ‚|jrfJ ‚|jrpJ ‚||jv s~J ‚||jvsŒJ ‚|j|u sšJ ‚| ¡  | ¡  ||fD ] }|jd u sÄJ ‚|jd u s²J ‚q²||jvsâJ ‚| jsìJ ‚|jsöJ ‚d S )Né$   r.   r/   )r   r8   ÚimshowrJ   ÚarangeZreshaperB   ÚrangeÚstaleZcanvasÚdrawZ_mouseover_setr   ÚremoveÚfigure)r;   r   ZimÚlnÚartr#   r#   r$   Útest_remove½   s(    






rh   zdefault_edges.pngc               	   C   sä   dt jd< t  dd¡\} \\}}\}}| t d¡t d¡dt d¡d t d¡d¡ |jt d¡t d¡dd	 |jd
d
ddtddd | 	d¡ | 
d¡ tjt g d¢tjjtjjtjjtjjg¡d|jd}| |¡ d S )Nr.   ztext.kerning_factorr   é
   rP   r   ÚoZedge)Zalignr   ZBOXé   Zsawtooth)Zboxstyle)ÚsizeZbbox)r-   r   )rU   ©r   r   ©r   r   rU   Únone)r   r   )r   ZrcParamsr8   rB   rJ   r`   ÚbarÚtextÚdictr   r   r   r:   r5   r6   ZMOVETOZCURVE3Z	CLOSEPOLYr   r   )r;   r<   r=   Zax3Zax4Zpp1r#   r#   r$   Útest_default_edgesÚ   s$    
ÿ


ÿÿürs   c                  C   s   t  g g ¡} |  ¡  d S ©N)ÚmlinesÚLine2DZ
properties)rf   r#   r#   r$   Útest_propertiesï   s    rw   c                  C   s’   t  g ¡ t  g g¡ t  ¡ \} }| tdƒ¡}| tdƒ¡}t t||ƒdd¡ t j|j ¡ dd t	 
¡ }t j|d|d | ¡ dksŽJ ‚d S )	Nr   r1   r/   Zgreen)ÚcolorÚzorder)Úfilez  zorder: float
)r   Zsetpr8   rB   ra   Úmartistr   ZspinesÚvaluesrL   ÚStringIOrO   )r;   r   Zlines1Zlines2Úsior#   r#   r$   Ú	test_setpô   s    
r   c                  C   sp   t  ¡ \} }|jtdƒd d\}| ¡ tjjks4J ‚| d¡ | ¡ dksNJ ‚| d ¡ | ¡ tjjkslJ ‚d S )Nr/   )ry   i@â )	r   r8   rB   ra   Z
get_zorderru   rv   ry   Ú
set_zorder)r;   r   rf   r#   r#   r$   Útest_None_zorder  s    

r   zaccept_clause, expected))Ú Úunknown)zACCEPTS: [ '-' | '--' | '-.' ]z[ '-' | '--' | '-.' ])zACCEPTS: Some description.úSome description.)z.. ACCEPTS: Some description.r„   )z	arg : intÚint)z
*arg : intr…   )z"arg : int
ACCEPTS: Something else.zSomething else. c                 C   s>   G dd„ dt jƒ}d|  |j_t  |¡ d¡}||ks:J ‚d S )Nc                   @   s   e Zd Zdd„ ZdS )z:test_artist_inspector_get_valid_values.<locals>.TestArtistc                 S   s   d S rt   r#   )ÚselfÚargr#   r#   r$   Úset_f  s    z@test_artist_inspector_get_valid_values.<locals>.TestArtist.set_fN)Ú__name__Ú
__module__Ú__qualname__rˆ   r#   r#   r#   r$   Ú
TestArtist  s   rŒ   z
    Some text.

    %s
    Úf)r{   ÚArtistrˆ   Ú__doc__ÚArtistInspectorZget_valid_values)Zaccept_clauseÚexpectedrŒ   Zvalid_valuesr#   r#   r$   Ú&test_artist_inspector_get_valid_values  s    
ür’   c                  C   s*   t  tj¡} |  ¡ }|d dhks&J ‚d S )NZ	linewidthr1   )r{   r   ru   rv   Zget_aliases)ZaiÚaliasesr#   r#   r$   Ú!test_artist_inspector_get_aliases'  s    r”   c                  C   sò   t  ¡ } tjtdd |  d¡ W d   ƒ n1 s60    Y  tjtdd |  g d¢¡ W d   ƒ n1 sr0    Y  tjtdd |  d¡ W d   ƒ n1 sª0    Y  tjtdd |  tj¡ W d   ƒ n1 sä0    Y  d S )Nú^alpha must be numeric or None©ÚmatchÚstring)r   r   r   úoutside 0-1 rangeçš™™™™™ñ?)	r{   rŽ   ÚpytestÚraisesÚ	TypeErrorZ	set_alphaÚ
ValueErrorrJ   Únan©rg   r#   r#   r$   Útest_set_alpha.  s    (,(r¡   c                  C   s2  t  ¡ } tjtdd |  d¡ W d   ƒ n1 s60    Y  tjtdd |  d¡ W d   ƒ n1 sn0    Y  tjtdd |  tj¡ W d   ƒ n1 s¨0    Y  tjtdd |  ddg¡ W d   ƒ n1 sä0    Y  tjtdd  |  dtjg¡ W d   ƒ n1 s$0    Y  d S )Nr•   r–   r˜   r™   rš   zalpha must be between 0 and 1r
   )	r{   rŽ   r›   rœ   r   Z_set_alpha_for_arrayrž   rJ   rŸ   r    r#   r#   r$   Útest_set_alpha_for_array:  s    ((*,r¢   c                     s„   ‡ fdd„‰ dˆ _ t ¡ } |  ˆ ¡}ˆ j dks2J ‚|  ¡  ˆ j dksHJ ‚|  d¡ ˆ j dks`J ‚|  |¡ |  ¡  ˆ j dks€J ‚d S )Nc                    s   ˆ  j d7  _ d S )Nr   )Úcounter)Úartist©Úfuncr#   r$   r¦   I  s    ztest_callbacks.<locals>.funcr   r   ri   r   )r£   r{   rŽ   Zadd_callbackZpchangedr€   Zremove_callback)rg   Úoidr#   r¥   r$   Útest_callbacksH  s    


r¨   c                  C   sv   G dd„ dt jƒ} t| jdƒs"J ‚d| jjv s2J ‚G dd„ d| ƒ}t|jdƒsRJ ‚d|jjv sbJ ‚d|jjv srJ ‚dS )	z3Test autogenerated ``set()`` for Artist subclasses.c                   @   s   e Zd Zdd„ ZdS )z%test_set_signature.<locals>.MyArtist1c                 S   s   d S rt   r#   ©r†   Úvalr#   r#   r$   Úset_myparam1]  s    z2test_set_signature.<locals>.MyArtist1.set_myparam1N)r‰   rŠ   r‹   r«   r#   r#   r#   r$   Ú	MyArtist1\  s   r¬   Ú_autogenerated_signatureZmyparam1c                   @   s   e Zd Zdd„ ZdS )z%test_set_signature.<locals>.MyArtist2c                 S   s   d S rt   r#   r©   r#   r#   r$   Úset_myparam2d  s    z2test_set_signature.<locals>.MyArtist2.set_myparam2N)r‰   rŠ   r‹   r®   r#   r#   r#   r$   Ú	MyArtist2c  s   r¯   Zmyparam2N©r{   rŽ   ÚhasattrrC   r   )r¬   r¯   r#   r#   r$   Útest_set_signatureZ  s    r²   c                  C   sV   G dd„ dt jƒ} t| jdƒr"J ‚| jjdks2J ‚G dd„ d| ƒ}|j| ju sRJ ‚dS )z=set() defined in Artist subclasses should not be overwritten.c                   @   s   e Zd Zdd„ ZdS )z*test_set_is_overwritten.<locals>.MyArtist3c                 [   s   dS )úNot overwritten.Nr#   )r†   Úkwargsr#   r#   r$   rC   p  s    z.test_set_is_overwritten.<locals>.MyArtist3.setN)r‰   rŠ   r‹   rC   r#   r#   r#   r$   Ú	MyArtist3n  s   rµ   r­   r³   c                   @   s   e Zd ZdS )z*test_set_is_overwritten.<locals>.MyArtist4N©r‰   rŠ   r‹   r#   r#   r#   r$   Ú	MyArtist4v  s   r·   Nr°   )rµ   r·   r#   r#   r$   Útest_set_is_overwrittenl  s
    r¸   c            	      C   s†  t  d¡} d| d< d| d< d| d< d| d	< d
| d< d| d< d| d< d| d< d| d< t ¡ \}}| d¡ t t  ddd¡d¡}|j| d|d}g d¢}t	| j
|ƒD ]\}}| |¡|ks¢J ‚q¢t ¡  t ¡ \}}| d¡ tjd  d¡}t t  ddd¡d¡}|j| ||d}g d¢}t	| j
|ƒD ]\}}| |¡|ks&J ‚q&t ¡  t ¡ \}}| d¡ tjd  d¡}t t  ddd¡d¡}|j| ||d}g d¢}t	| j
|ƒD ]\}}| |¡|ks®J ‚q®t ¡  t  d ¡} d!| d
< d"| d< d#| d$< d%| d&< d| d'< d(| d)< d*| d+< g d,¢}t ¡ \}}| d-¡ tjt jd
dd'd.d/dd0d1d2}|j| d|d}t	| j
|ƒD ]\}}| |¡|ksrJ ‚qrt ¡  t ¡ \}}| d3¡ tjt jd
dd'd.d/dd0d4d2}|j| d|d}t	| j
|ƒD ]\}}| |¡|ksìJ ‚qìt ¡  t ¡ \}}| d5¡ tjt jd
dd'd.d/dd0d6d2}|j| d|d}t	| j
|ƒD ]\}}| |¡|ksfJ ‚qft ¡  t ¡ \}}| d7¡ tjt jd
dd'd.d/dd0d8d2}|j| d|d}t	| j
|ƒD ]\}}| |¡|ksàJ ‚qàt ¡  t ¡ \}}| d9¡ tjt jd
dd'd.d/dd.d1d2}|j| d|d}t	| j
|ƒD ]\}}| |¡|ksZJ ‚qZt ¡  d:S );z7Test if cursor data is correct when using BoundaryNorm.)r   r   gÍÌÌÌÌÌì?rU   g®Gáz®ï?)r   r   g+‡ÙÎ÷ï?)r   r   r-   rm   r   rn   r   )r   r   g
×£p=
·?)r   r   g;ßO—n‚?)r   r   g’ËH¿}M?r   z-1..1 to 0..256 in 0.1é   é   ZRdBu_r)ÚcmapÚnorm)	ú[0.9]ú[1.]r¾   ú[-1.0]ú[0.0]ú[1.0]ú[0.09]ú[0.009]ú[0.0009]z-1..1 to 0..256 in 0.01éÈ   )	z[0.90]z[0.99]rÁ   z[-1.00]z[0.00]z[1.00]rÂ   rÃ   rÄ   z-1..1 to 0..256 in 0.001iÐ  )	z[0.900]z[0.990]z[0.999]z[-1.000]z[0.000]z[1.000]z[0.090]rÃ   rÄ   )r[   r   g      ð¿g        gš™™™™™¹?r   r
   r   r,   g      ð?r/   g       @r.   )r¿   rÀ   z[0.1]z[0.5]r½   rÁ   z[2.0]znoclip, neitherT)ZendpointFZneither)ZclipÚextendznoclip, minÚminznoclip, maxÚmaxznoclip, bothZbothzclip, neitherN)rJ   Úemptyr   r8   ZsuptitleÚmcolorsZBoundaryNormZlinspacer_   ÚzipZflatZformat_cursor_dataÚcloseÚmplZ	colormapsZ	resampled)	ÚXr;   r   r¼   ÚimgZlabels_listÚvÚlabelr»   r#   r#   r$   Ú$test_format_cursor_data_BoundaryNorm|  s´    






ÿ
ÿ
ÿ
ÿ
ÿrÒ   c                  C   sf   G dd„ dt jƒ} d| jv s J ‚| jd | ju s4J ‚G dd„ d| ƒ}d|jvsRJ ‚|j| ju sbJ ‚d S )Nc                   @   s   e Zd ZdS )z$test_auto_no_rasterize.<locals>.Gen1Nr¶   r#   r#   r#   r$   ÚGen1  s   rÓ   rc   c                   @   s   e Zd ZdS )z$test_auto_no_rasterize.<locals>.Gen2Nr¶   r#   r#   r#   r$   ÚGen2$  s   rÔ   )r{   rŽ   Ú__dict__rc   )rÓ   rÔ   r#   r#   r$   Útest_auto_no_rasterize  s    rÖ   c                  C   sN   G dd„ dt jƒ} | ƒ }t ¡ }d| |d¡ks4J ‚d|j|ddksJJ ‚d S )Nc                   @   s   e Zd Zdd„ ZdS )z1test_draw_wraper_forward_input.<locals>.TestKlassc                 S   s   |S rt   r#   )r†   ÚrendererÚextrar#   r#   r$   rc   -  s    z6test_draw_wraper_forward_input.<locals>.TestKlass.drawN)r‰   rŠ   r‹   rc   r#   r#   r#   r$   Ú	TestKlass,  s   rÙ   Zaardvark)rØ   )r{   rŽ   Úmbackend_basesZRendererBaserc   )rÙ   rg   r×   r#   r#   r$   Útest_draw_wraper_forward_input+  s
    rÛ   )=rL   Ú	itertoolsr   ÚnumpyrJ   r›   Zmatplotlib.colorsÚcolorsrÊ   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr   Zmatplotlib.linesÚlinesru   Zmatplotlib.pathÚpathr5   Zmatplotlib.transformsZ
transformsr   Zmatplotlib.collectionsÚcollectionsr'   Zmatplotlib.artistr¤   r{   Zmatplotlib.backend_basesZbackend_basesrÚ   Z
matplotlibrÍ   Zmatplotlib.testing.decoratorsr   r   r%   r*   r@   rF   rR   r]   rh   rs   rw   r   r   ÚmarkZparametrizer’   r”   r¡   r¢   r¨   r²   r¸   rÒ   rÖ   rÛ   r#   r#   r#   r$   Ú<module>   sR   *$





	
 "