U
    Âmœ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#d$d%d&d'd(d)d*g¡d+d,„ ƒZ3d-d.„ Z4d/d0„ Z5d1d2„ Z6d3d4„ Z7d5d6„ Z8d7d8„ Z9d9d:„ Z:d;d<„ Z;d=d>„ Z<dS )?é    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sbt
‚tj|dddd dd	}| ¡ s„t
‚|  |¡ t|j	tjƒs t
‚tj|d
d
t ¡ dd}|  |¡ t|j	tjƒsÔt
‚tj|ddddd}| ¡ }| ¡ rüt
‚|  |¡ | ¡ |kst
‚| ¡ s&t
‚|j	| jks8t
‚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
_transformÚAssertionErrorZis_transform_setÚ
isinstanceÚmtransformsÚIdentityTransformÚget_transform)ÚaxÚxy_dataÚxy_pixÚeZintermediate_transform© r$   úU/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/matplotlib/tests/test_artist.pyÚtest_patch_transform_of_none   s<    
 ÿ

 ÿ
ÿ
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szt‚tj|ddd}tj	|gd	dd}| d ¡ |  
|¡ t| ¡ tjƒsÄt‚tj|d
d
d}tj	|gt ¡ dd}|  
|¡ t| ¡ tjƒs
t‚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   r   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_clippingc   s0      ÿ
 ÿ
rE   Zpng)Ú
extensionsc                 C   s°   |   ddddg¡}| 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}| |¡ |  ddddg¡}| ddgddg¡ |jddd |jddd d S )Nr   r   r7   r   )r   )r
   g      è?)ZxlimZylim)	Zadd_axesÚplotr8   r9   r   r=   r   r<   Úset)Zfig_testZfig_refZax_testÚlÚpZax_refr$   r$   r%   Útest_clipping_zoom   s    (
rK   c                  C   s–   t j d¡} t j d¡}t ¡ \}}| | |d¡ | dd¡ t ¡ }|j|dd t	| 
¡ ƒdk sht‚t ¡ }|j|dd t	| 
¡ ƒdk s’t‚d S )	Ni N  zk.r   r   Úpdf)Úformati@  Úsvg)ÚnpÚrandomr   r;   rG   r   ÚioÚBytesIOZsavefigÚlenÚgetvaluer   )ÚxÚyr@   r    rL   rN   r$   r$   r%   Útest_cull_markers’   s    rW   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-   ú/)r6   i€>  )g      ø?ç      @)ÚsizesÚoffsetsÚoffset_transformr6   )r-   r   ZC1)r6   r5   )g      @r\   )r]   r^   r_   r6   r5   r   é   é	   )r   r;   r   Z	Rectangler   r(   ZRegularPolyCollectionr   r)   r   r   )r@   r    Zrect1Zrect2Zrect3Zrect4r$   r$   r%   Útest_hatching£   s0    
   þ

    þ
rb   c                  C   sú   t  ¡ \} }| t d¡ dd¡¡}| tdƒ¡\}| js>t	‚|jsHt	‚| j
 ¡  | jr\t	‚|jrft	‚|jrpt	‚||jks~t	‚||jksŒt	‚|j|ksšt	‚| ¡  | ¡  ||fD ] }|jd ksÄt	‚|jd ks²t	‚q²||jksât	‚| jsìt	‚|jsöt	‚d S )Né$   r/   r0   )r   r;   ÚimshowrO   ÚarangeZreshaperG   ÚrangeÚstaler   ZcanvasÚdrawZ_mouseover_setr   ÚremoveZfigure)r@   r    ZimÚlnÚartr$   r$   r%   Útest_remove½   s(    






rl   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 ddddgtjjtjjtjjtjjg¡d|jd}| |¡ d S )Nr/   ztext.kerning_factorr   é
   rU   r   ÚoÚedge)Úalignr   ZBOXé   Zsawtooth)Zboxstyle)ÚsizeZbbox)r.   r   rZ   ©r   r   ©r   r   Únone)r   r   )r   ZrcParamsr;   rG   rO   re   ÚbarÚtextÚdictr   r   r   r=   r8   r9   ZMOVETOZCURVE3Z	CLOSEPOLYr   r   )r@   rA   rB   Zax3Zax4Zpp1r$   r$   r%   Útest_default_edgesÚ   s,    
  ÿ

 ÿÿ üry   c                  C   s   t  g g ¡} |  ¡  d S ©N)ÚmlinesÚLine2DÚ
properties)rj   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Žt‚d S )	Nr   r4   r0   Úgreen)ÚcolorÚzorder)Úfilez  zorder: float
)r   Zsetpr;   rG   rf   Úmartistr   ZspinesÚvaluesrQ   ÚStringIOrT   r   )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s4t‚| 	d¡ | ¡ dksNt‚| 	d ¡ | ¡ tjjkslt‚d S )Nr0   )r   i@â )
r   r;   rG   rf   Z
get_zorderr{   r|   r   r   Ú
set_zorder)r@   r    rj   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:t‚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 rz   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_valuesr   )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&t‚d S )NZ	linewidthr4   )rƒ   r˜   r{   r|   Zget_aliasesr   )ZaiÚaliasesr$   r$   r%   Ú!test_artist_inspector_get_aliases'  s    rœ   c               	   C   s¤   t  ¡ } tjtdd |  d¡ W 5 Q R X tjtdd |  dddg¡ W 5 Q R X tjtdd |  d¡ W 5 Q R X tjtdd |  tj¡ W 5 Q R X d S )	Nú^alpha must be numeric or None©ÚmatchÚstringr   r   r   úoutside 0-1 rangeçš™™™™™ñ?)	rƒ   r–   ÚpytestÚraisesÚ	TypeErrorZ	set_alphaÚ
ValueErrorrO   Únan©rk   r$   r$   r%   Útest_set_alpha.  s    r©   c               	   C   sÌ   t  ¡ } tjtdd |  d¡ W 5 Q R X tjtdd |  d¡ W 5 Q R X tjtdd |  tj¡ W 5 Q R X tjtdd |  ddg¡ W 5 Q R X tjtdd |  dtjg¡ W 5 Q R X 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¦   rO   r§   r¨   r$   r$   r%   Útest_set_alpha_for_array:  s    rª   c                     s„   ‡ fdd„‰ dˆ _ t ¡ } |  ˆ ¡}ˆ j dks2t‚|  ¡  ˆ j dksHt‚|  d¡ ˆ j dks`t‚|  |¡ |  ¡  ˆ j dks€t‚d S )Nc                    s   ˆ  j d7  _ d S )Nr   )Úcounter)Úartist©Úfuncr$   r%   r®   I  s    ztest_callbacks.<locals>.funcr   r   rm   r   )r«   rƒ   r–   Zadd_callbackr   Zpchangedrˆ   Zremove_callback)rk   Úoidr$   r­   r%   Útest_callbacksH  s    


r°   c                  C   sv   G dd„ dt jƒ} t| jdƒs"t‚d| jjks2t‚G dd„ d| ƒ}t|jdƒsRt‚d|jjksbt‚d|jjksrt‚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 rz   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 rz   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–   ÚhasattrrH   r   r—   )r´   r·   r$   r$   r%   Útest_set_signatureZ  s    rº   c                  C   sV   G dd„ dt jƒ} t| jdƒr"t‚| jjdks2t‚G dd„ d| ƒ}|j| jksRt‚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%   rH   p  s    z.test_set_is_overwritten.<locals>.MyArtist3.setN)r‘   r’   r“   rH   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}ddddddddd g	}t	| j
|ƒD ]\}}| |¡|ks°t‚q°t ¡  t ¡ \}}| d!¡ tjd  d"¡}t t  ddd"¡d"¡}|j| ||d}d#d$dd%d&d'ddd g	}t	| j
|ƒD ]\}}| |¡|ksBt‚qBt ¡  t ¡ \}}| d(¡ tjd  d)¡}t t  ddd)¡d)¡}|j| ||d}d*d+d,d-d.d/d0dd g	}t	| j
|ƒD ]\}}| |¡|ksØt‚qØt ¡  t  d1¡} d2| d
< d3| d< d4| d5< d6| d7< d| d8< d9| d:< d;| d<< ddd=d>ddd?g}t ¡ \}}| d@¡ tjt jd
dd8dAdBddCdDdE}|j| d|d}t	| j
|ƒD ]\}}| |¡|ks¦t‚q¦t ¡  t ¡ \}}| dF¡ tjt jd
dd8dAdBddCdGdE}|j| d|d}t	| j
|ƒD ]\}}| |¡|ks t‚q t ¡  t ¡ \}}| dH¡ tjt jd
dd8dAdBddCdIdE}|j| d|d}t	| j
|ƒD ]\}}| |¡|ksšt‚qšt ¡  t ¡ \}}| dJ¡ tjt jd
dd8dAdBddCdKdE}|j| d|d}t	| j
|ƒD ]\}}| |¡|kst‚qt ¡  t ¡ \}}| dL¡ tjt jd
dd8dAdBddAdDdE}|j| d|d}t	| j
|ƒD ]\}}| |¡|ksŽt‚qŽt ¡  dMS )Nz7Test if cursor data is correct when using BoundaryNorm.)r   r   gÍÌÌÌÌÌì?rZ   g®Gáz®ï?)r   r   g+‡ÙÎ÷ï?)r   r   r.   rs   r   rt   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Únormz[0.9]z[1.]z[-1.0]z[0.0]z[1.0]z[0.09]z[0.009]z[0.0009]z-1..1 to 0..256 in 0.01éÈ   z[0.90]z[0.99]z[-1.00]z[0.00]z[1.00]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   g      ð¿g        gš™™™™™¹?r   r
   r   r-   g      ð?r0   g       @r/   z[0.1]z[0.5]z[2.0]znoclip, neitherT)ZendpointFZneither)ZclipÚextendznoclip, minÚminznoclip, maxÚmaxznoclip, bothZbothzclip, neitherN)rO   Úemptyr   r;   ZsuptitleÚmcolorsZBoundaryNormZlinspacerd   ÚzipZflatZformat_cursor_datar   ÚcloseÚmplZ	colormapsZ	resampled)	ÚXr@   r    rÄ   Z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ks t‚| jd | jks4t‚G dd„ d| ƒ}d|jksRt‚|j| jksbt‚d S )Nc                   @   s   e Zd ZdS )z$test_auto_no_rasterize.<locals>.Gen1Nr¾   r$   r$   r$   r%   ÚGen1  s   rÒ   rh   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__r   rh   )rÒ   rÓ   r$   r$   r%   Útest_auto_no_rasterize  s    rÕ   c                  C   sN   G dd„ dt jƒ} | ƒ }t ¡ }d| |d¡ks4t‚d|j|ddksJt‚d S )Nc                   @   s   e Zd Zdd„ ZdS )z1test_draw_wraper_forward_input.<locals>.TestKlassc                 S   s   |S rz   r$   )rŽ   ÚrendererÚextrar$   r$   r%   rh   -  s    z6test_draw_wraper_forward_input.<locals>.TestKlass.drawN)r‘   r’   r“   rh   r$   r$   r$   r%   Ú	TestKlass,  s   rØ   Zaardvark)r×   )rƒ   r–   Úmbackend_basesZRendererBaserh   r   )rØ   rk   rÖ   r$   r$   r%   Útest_draw_wraper_forward_input+  s
    rÚ   )=rQ   Ú	itertoolsr   ÚnumpyrO   r£   Zmatplotlib.colorsÚcolorsrÊ   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr   Zmatplotlib.linesÚlinesr{   Zmatplotlib.pathÚpathr8   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+   rE   rK   rW   rb   rl   ry   r~   r‡   r‰   ÚmarkZparametrizerš   rœ   r©   rª   r°   rº   rÀ   rÑ   rÕ   rÚ   r$   r$   r$   r%   Ú<module>   sb   *$





ù	
 "