U
    d»{jš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#d$d%d&d'd(d)d*g¡d+d,„ ƒZ0d-d.„ Z1d/d0„ Z2d1d2„ Z3d3d4„ Z4d5d6„ Z5d7d8„ Z6d9d:„ Z7d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$   ú[/var/www/html/bwave/python/venv/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_clippingb   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canvasZdrawZ_mouseover_setr   ÚremoveZfigure)r@   r    ZimÚlnÚartr$   r$   r%   Útest_remove¼   s(    






rk   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,    
  ÿ

 ÿÿ ürx   c                  C   s   t  g g ¡} |  ¡  d S ©N)ÚmlinesÚLine2DÚ
properties)ri   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_zorderrz   r{   r€   r   Ú
set_zorder)r@   r    ri   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 ry   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—   rz   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©rj   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_array9  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­   H  s    ztest_callbacks.<locals>.funcr   r   rl   r   )rª   r‚   r•   Zadd_callbackr   Zpchangedr‡   Zremove_callback)rj   Úoidr$   r¬   r%   Útest_callbacksG  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 ry   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 ry   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•   ÚhasattrrH   r   r–   )r³   r¶   r$   r$   r%   Útest_set_signatureY  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   o  s    z.test_set_is_overwritten.<locals>.MyArtist3.setN)r�   r‘   r’   rH   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�}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.   rr   r   rs   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Ï   )8rQ   Ú	itertoolsr   ÚnumpyrO   r¢   Zmatplotlib.colorsÚcolorsrÈ   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.patchesZpatchesr   Zmatplotlib.linesÚlinesrz   Zmatplotlib.pathÚpathr8   Zmatplotlib.transformsZ
transformsr   Zmatplotlib.collectionsÚcollectionsr(   Zmatplotlib.artistr«   r‚   Z
matplotlibrË   Zmatplotlib.testing.decoratorsr   r   r&   r+   rE   rK   rW   rb   rk   rx   r}   r†   rˆ   ÚmarkZparametrizer™   r›   r¨   r©   r¯   r¹   r¾   rÏ   r$   r$   r$   r%   Ú<module>   sZ   *$





ù	
