a
    s=icšA  ã                   @   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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"„ Z-ej. /d#g d$¢¡d%d&„ ƒZ0d'd(„ Z1d)d*„ Z2d+d,„ Z3d-d.„ Z4d/d0„ Z5d1d2„ Z6d3d4„ Z7dS )5é    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#   úm/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/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é   ÚblueÚ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interiorÚ	clip_pathÚstarÚfigÚax1Úax2ÚcolÚpatchr#   r#   r$   Útest_clippingb   s*    ÿ
ÿ
rD   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   r6   r   r   r   )r   )r
   g      è?)ZxlimZylim)	Zadd_axesÚplotr7   r8   r   r<   r   r;   Úset)Zfig_testZfig_refZax_testÚlÚpZax_refr#   r#   r$   Útest_clipping_zoom~   s    (
rJ   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   r:   rF   r   ÚioÚBytesIOZsavefigÚlenÚgetvalue)ÚxÚyr?   r   rK   rM   r#   r#   r$   Útest_cull_markers‘   s    rV   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,   ú/)r5   i€>  )g      ø?ç      @)ÚsizesÚoffsetsÚoffset_transformr5   )r,   r   ZC1)r5   r4   )g      @r[   )r\   r]   r^   r5   r4   r   é   é	   )r   r:   r   Z	Rectangler   r'   ZRegularPolyCollectionr   r(   r   r   )r?   r   Zrect1Zrect2Zrect3Zrect4r#   r#   r$   Útest_hatching¢   s"    
þ

þ
ra   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   r:   ÚimshowrN   ÚarangeZreshaperF   ÚrangeÚstaleZcanvasZdrawZ_mouseover_setr   ÚremoveZfigure)r?   r   ZimÚlnÚartr#   r#   r$   Útest_remove¼   s(    






rj   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   é
   rT   r   ÚoÚedge)Úalignr   ZBOXé   Zsawtooth)Zboxstyle)ÚsizeZbbox)r-   r   )rY   ©r   r   ©r   r   rY   Únone)r   r   )r   ZrcParamsr:   rF   rN   rd   ÚbarÚtextÚdictr   r   r   r<   r7   r8   ZMOVETOZCURVE3Z	CLOSEPOLYr   r   )r?   r@   rA   Zax3Zax4Zpp1r#   r#   r$   Útest_default_edgesÙ   s$    
ÿ


ÿÿürw   c                  C   s   t  g g ¡} |  ¡  d S ©N)ÚmlinesÚLine2DÚ
properties)rh   r#   r#   r$   Útest_propertiesî   s    r|   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   r3   r/   Úgreen)ÚcolorÚzorder)Úfilez  zorder: float
)r   Zsetpr:   rF   re   Úmartistr   ZspinesÚvaluesrP   ÚStringIOrS   )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/   )r   i@â )	r   r:   rF   re   Z
get_zorderry   rz   r   Ú
set_zorder)r?   r   rh   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 rx   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	linewidthr3   )r   r–   ry   rz   Zget_aliases)Ú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Ú
ValueErrorrN   Únan©ri   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¥   rN   r¦   r§   r#   r#   r$   Útest_set_alpha_for_array9  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­   H  s    ztest_callbacks.<locals>.funcr   r   rk   r   )rª   r   r”   Zadd_callbackZpchangedr†   Zremove_callback)ri   Úoidr#   r¬   r$   Útest_callbacksG  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 rx   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 rx   r#   r°   r#   r#   r$   Úset_myparam2c  s    z2test_set_signature.<locals>.MyArtist2.set_myparam2N)r   r   r‘   rµ   r#   r#   r#   r$   Ú	MyArtist2b  s   r¶   Zmyparam2N©r   r”   ÚhasattrrG   r•   )r³   r¶   r#   r#   r$   Útest_set_signatureY  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$   rG   o  s    z.test_set_is_overwritten.<locals>.MyArtist3.setN)r   r   r‘   rG   r#   r#   r#   r$   Ú	MyArtist3m  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$   Ú	MyArtist4u  s   r½   Nr·   )r¼   r½   r#   r#   r$   Útest_set_is_overwrittenk  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ÍÌÌÌÌÌì?rY   g®Gáz®ï?)r   r   g+‡ÙÎ÷ï?)r   r   r-   rq   r   rr   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)rN   Úemptyr   r:   ZsuptitleÚmcolorsZBoundaryNormZlinspacerc   ÚzipZflatZformat_cursor_dataÚcloseÚmplZ	colormapsZ	resampled)	ÚXr?   r   rÂ   ZimgZlabels_listÚvÚlabelrÁ   r#   r#   r$   Ú$test_format_cursor_data_BoundaryNorm{  s´    






ÿ
ÿ
ÿ
ÿ
ÿr×   )8rP   Ú	itertoolsr   ÚnumpyrN   r¢   Zmatplotlib.colorsÚcolorsrÐ   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr   Zmatplotlib.linesÚlinesry   Zmatplotlib.pathÚpathr7   Zmatplotlib.transformsZ
transformsr   Zmatplotlib.collectionsÚcollectionsr'   Zmatplotlib.artistr«   r   Z
matplotlibrÓ   Zmatplotlib.testing.decoratorsr   r   r%   r*   rD   rJ   rV   ra   rj   rw   r|   r…   r‡   ÚmarkZparametrizer˜   r›   r¨   r©   r¯   r¹   r¾   r×   r#   r#   r#   r$   Ú<module>   sJ   *$





	
